Android显示系统_由浅入深_02_动画与其他常用类
2016-06-15 21:08
369 查看
第二章:动画与显示系统中常见类
1:常用控件
->listview样式
Android系统自带很多listview的显示效果,我们完成可以复用
1)simple_list_item_1
![](https://img-blog.csdn.net/20160616102609793)
2)simple_list_item_2,wo_line_list_item
![](https://img-blog.csdn.net/20160616102753077)
3)simple_list_item_single_choice,simple_list_item_multiple_choice、simple_list_item_checked
![](https://img-blog.csdn.net/20160616102912828)
->listview常用属性
我们在使用ListView分类的时候会用到两个方法getItemViewType和getViewTypeCount,getViewTypeCount这个方法告诉ListView我共有多少种item,getItemViewType方法告诉ListView每行该显示哪种item,并且该方法中返回的type类型必须为整数且不能大于getViewTypeCount返回的数。通过上述接口,便可以实现QQ聊天记录的功能
listview中多种布局
->listview hold模式
Holder模式要解决的是性能问题:
场景:在我们的Adapter中每次都要从row中通过findViewById来找到子控件,然后设置值。如果row的布局比较复杂,或者row的数目特别多。这个查找就要不断发生。从而导致性能问题。
方案:在row第一次被构建出来的时候,调用findViewById, 通过Holder对象存储起来,然后把Holder对象通过row.setTag方法,直接缓存在row上。这样下次就不用查找了。
即通过setTag和getTag方式,配合使用findviewbyid
2:动画
->属性
1:常用控件
->listview样式
Android系统自带很多listview的显示效果,我们完成可以复用
1)simple_list_item_1
2)simple_list_item_2,wo_line_list_item
3)simple_list_item_single_choice,simple_list_item_multiple_choice、simple_list_item_checked
->listview常用属性
我们在使用ListView分类的时候会用到两个方法getItemViewType和getViewTypeCount,getViewTypeCount这个方法告诉ListView我共有多少种item,getItemViewType方法告诉ListView每行该显示哪种item,并且该方法中返回的type类型必须为整数且不能大于getViewTypeCount返回的数。通过上述接口,便可以实现QQ聊天记录的功能
listview中多种布局
->listview hold模式
Holder模式要解决的是性能问题:
场景:在我们的Adapter中每次都要从row中通过findViewById来找到子控件,然后设置值。如果row的布局比较复杂,或者row的数目特别多。这个查找就要不断发生。从而导致性能问题。
方案:在row第一次被构建出来的时候,调用findViewById, 通过Holder对象存储起来,然后把Holder对象通过row.setTag方法,直接缓存在row上。这样下次就不用查找了。
即通过setTag和getTag方式,配合使用findviewbyid
public View getView(int position, View convertView, ViewGroup parent){ ViewHolder holder; if (convertView == null) { convertView = mInflater.inflate(R.layout.list_item_icon_text, null); holder = new ViewHolder(); holder.text = (TextView) convertView.findViewById(R.id.text); holder.icon = (ImageView) convertView.findViewById(R.id.icon); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.text.setText(DATA[position]); holder.icon.setImageBitmap((position & 1) == 1 ? mIcon1 : mIcon2); return convertView; }
2:动画
->属性
相关文章推荐
- Android Studio 问题汇总目录
- Android中Intent介绍
- android进程重启及activity恢复
- Android之BroadcastReceiver(二):接收系统广播
- Android JAVA中去掉字符串空格的方法
- Android天气预报开发
- Android Studio使用gradle-retrolambda支持Java8 新特性 Lambde表达式
- Android拨打电话
- Android开发学习笔记之通过API接口将LaTex数学函数表达式转化为图片形式
- android Fragment 源码分析
- 深入理解Android的startservice和bindservice
- 我的第一个Android程序--HelloWorld
- Android中的dex分包
- Android Studio提示忽略大小写
- Android之三种Menu的使用与分析
- Android之Activity
- Android 5.1系统动画的调节
- [Android Studio] Android studio 多渠道打包(超简洁版)
- Android Studio自动提取控件Style样式
- Android studio 配置忽略