Android
文章平均质量分 87
whuczh
擅长andorid开发,有java web和native开发经历
展开
-
如何在ListView中点击item控制item中的控件变化(ListView篇)
ListView一直是Android里的一大难题,之前一段时间做项目碰到一个需求:点击item后控制item中的ImageView显示正在播放的图片,其他item中的imageView则都显示未播放的图片。下面给出一个例子来实现这种效果。首先看下最后的效果图:要实现这个需求有两个难点:1.如何获取item中的控件 2.如何避免item布局复用带来的负面效果先抛开第二点不谈,看看原创 2015-12-20 12:59:55 · 10070 阅读 · 3 评论 -
AndroidStudio模板简介
AndroidStudio模板简介概述很多时候Android开发者会觉得每天都在敲一些重复的代码非常枯燥。findViewById、setVisibility、判断是否为空、instanceof、for循环、intent跳转,看到这些东西就想吐了有木有!还好AndroidStudio给开发者提供了一套机制,让我们不需要一字一句的重复敲打这些代码,这就是模板。顾名思义,模板就是事先制定一些规则,我们只原创 2017-09-04 00:35:12 · 3318 阅读 · 0 评论 -
如何在ListView中点击item控制item中的控件变化(ExpandableListView篇)
之前一篇讲了在ListView中如何在点击item时改变item中的控件状态,并且也讲了如何消除item布局复用带来的负面效果。这一篇就讲讲ListView的进阶版ExpandableListView。先上效果图和代码:原创 2015-12-21 14:19:09 · 1999 阅读 · 2 评论 -
ScrollView嵌套ListView问题:如何让ListView随着ScrollView一起滚动
如题,Android滚动控件有个规律:一个父滚动控件嵌套了一个子滚动控件,当手指在两个控件重叠部分滑动时,会优先触发子控件的滚动属性。那么如何只触发父控件的滚动属性而不触发子控件的滚动属性?很简单,只要让整个ListView在父布局中显示出来就好了。假设父布局是一个不会滚动的控件(如RelativeLayout),当ListView在父布局中完全显示时(限制是这个ListView高度小于屏幕高度)原创 2015-12-22 08:42:28 · 2875 阅读 · 0 评论 -
使用AsyncHttpClient碰到的问题及解决方法
之前做一个项目,项目里面的布局是这样的:一个Viewpager,Viewpager里面有三个Fragment,在第二个Fragment里面有一个ListView,使用了BaseAdapter来显示item。当时因为图方便,把获取数据源mData的方法直接写在了adapter的构造方法里面,数据源通过syncHttpClient向后台请求参数获取。大概的代码如下:private La原创 2015-10-19 11:10:22 · 3674 阅读 · 0 评论 -
浅谈屏幕适配之measure(上)
刚做android的候在制定控件宽高时都习惯用wrap_content,match_parent属性或是直接写一个固定的值,但是在很多情况下,这种做法无法实现屏幕的适配问题。比如一个布局,上面是一个titleBar,下面是一个bottomTab,中间是一个ListView,若用上述的做法,或许在一种分辨率下可以把控件契合的很完美,但是可能换了个分辨率之后,中间的ListView就突然变“短”了或者原创 2015-11-27 20:32:08 · 536 阅读 · 1 评论 -
浅谈屏幕适配之measure(下)——状态栏和标题栏相关操作
上一篇博文里给自己挖了一个坑,今天把这个坑埋了。之前说listView的高度=屏幕高度-标题栏和状态栏高度-titleBar高度-bottomTab高度,titleBar和bottomTab都是自己画的View,这个不难理解,那么标题栏和状态栏是哪一块呢?见下图:标题栏和状态栏是android默认给出的两栏,每个应用新建的时候都会出现,如果要去掉这两栏,可以在Activity的setC原创 2015-11-28 12:39:40 · 534 阅读 · 1 评论 -
RadioButton之drawableTop及drawablePadding属性详解
现在正在做的一个项目,项目里面底部是一个Tab,如下图:选中某个button后该button上的图片点亮,因为涉及到了checked属性,所以我采用了RadioGroup来做这个Tab。大家都知道,RadioButton里面有一个drawableTop属性,正好可以满足这个项目的需求,但是在xml文件里面,却没有控制上方图片大小的属性,这个让人很伤脑筋,怎么控制drawableTop图原创 2015-11-28 14:48:27 · 20153 阅读 · 2 评论 -
android框架搭建——封装一个属于自己的网络工具类
之前使用AsyncHttpClient,Volley等网络框架,总觉得"占地面积"太大,比较理想的情况是用一两行代码就可以获取接口的数据,所以决定自己封装一个网络工具类。不多说,直接上代码;package com.xiaoteng.dms.utils;import java.util.ArrayList;import java.util.List;import org.apache.原创 2015-11-28 17:02:47 · 2834 阅读 · 1 评论 -
android框架搭建——二次封装Volley框架
上一篇博文中提到了自己写一个网络工具类,然而自己的能力明显有限,封装的工具类无论从功能还是性能上都比不上前辈大牛们已经完善好的网络框架,但是我们又想更加方便的使用大牛们的框架,怎么办呢?我们可以二次封装一下网上的网络框架,让它们使用起来更加的方便,这里以目前很流行的Volley为例:直接使用Volley的Get请求时的步骤:1.首先要创建一个全局的Volley队列,我们可以写一个MyApp原创 2015-11-29 15:40:35 · 3694 阅读 · 1 评论 -
android框架搭建——封装一个属于自己的数据存储工具类(sharedPreferences篇)
之前的几篇博文中提到过封装网络工具类,那么在发送请求并获取一个JSONObject对象之后,如何便捷的进行json解析和数据存储便成了我们要考虑的问题,在此分享一下自己在使用了诸多工具之后的一点心得。首先是json解析,我推荐使用Gson自带的一个方法,一行代码就可以获取所有的数据并将数据存储进bean中,下面给出例子:这是一个很常见的接口返回数据,该接口的格式为{“retcode原创 2015-11-30 22:24:08 · 1807 阅读 · 1 评论 -
android框架搭建——封装一个属于自己的数据存储工具类(SQLite篇)
当我们缓存本地的数据存在一对多(一个name对应多个values)的情况时,sharedPreferences已经无法胜任存储的工作了。此时我们需要使用SQLite来进行本地缓存。直接使用SQlite进行存储时,每次执行插入,查询,删除操作都要写一大堆代码,很麻烦,所以我们对SQLite进行一下简单的封装,下面给出例子:在这个例子中,我们要存储同学的姓名,年龄,指导老师,家庭地址,手机号等原创 2015-12-01 20:01:58 · 4267 阅读 · 3 评论 -
十个非常实用的开源个性化滚动View控件(eclipse篇)
之前在imooc上看到一篇分享功能各异的滚动View控件的文章,觉得挺有意思的,转载一波。eclipse上的demo:1.PinnedHeaderExpandableListViewAndroid中,大家都用过ListView,ExpandableListView等,也许你还用过PinnedHeaderListView,但是如果我说PinnedHeaderExpandabl转载 2015-12-12 16:12:40 · 1631 阅读 · 2 评论 -
圆形自定义ImageView的简单制作
很多微博,社交APP的个人资料里面的人物头像都是圆形的。有两种办法,一种是图片本身是圆形的,另一种则是ImageView在绘制图片时将图片裁剪成了圆形。第一种做法没什么好说的,来看看第二种是如何做到的。在网上看了一下相关代码,发现很多都挺复杂的,各种情况的考虑以及自定义属性等等,我在这里将核心代码提炼了一下,归结出一套比较简单的写法,思路很清晰,适合新手学习。既然是自定义圆形ImageVi原创 2015-12-21 16:28:29 · 774 阅读 · 3 评论 -
Android文件存储
Android 文件存储Android 文件存储概要独立文件专属文件internal storageexternal storage结束语概要当我们查看手机的文件管理器的时候,会发现里面的文件五花八门,我们想要找到自己项目所对应的文件非常困难,甚至有可能压根就找不到自己的文件,本文就来介绍一下APP开发过程当中文件存储的注意事项。通常我们会将存放的文件分为两种:独立文件和专属文件。顾名原创 2017-09-02 02:41:52 · 2849 阅读 · 0 评论