提高android--listview的优化
来源:互联网 发布:外国人淘宝 编辑:程序博客网 时间:2024/04/28 14:57
Adapter是listview和数据源间的中间人。
当每条数据进入可见区域时,adapter的getview()会被调用,返回代表具体数据的视图。触摸滚动时,频繁调用。支持成百上千条数据。
下面为显示每条数据的xml文件:
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:orientation=
"horizontal"
>
<ImageView android:id=
"@+id/icon"
android:layout_width=
"48dip"
android:layout_height=
"48dip"
/>
<TextView android:id=
"@+id/text"
android:layout_gravity=
"center_vertical"
android:layout_width=
"0dip"
android:layout_weight=
"1.0"
android:layout_height=
"wrap_content"
/>
</LinearLayout>
1
。最简单的方法,最慢且最不实用
public
View getView(
int
pos, View convertView,
ViewGroup parent){
View item = mInflater.inflate(R.layout.list_item,
null
);
((TextView) item.findViewById(R.id.text)).
setText(DATA[pos]);
((ImageView) item.findViewButId(R.id.icon)).
setImageBitmap((pos &
1
) ==
1
? mIcon1 : mIcon2);
return
item;
}
2
。利用convertview回收视图,效率提高
200
%。
public
View getView(
int
pos, View convertView,
ViewGroup parent){
if
(convertView ==
null
) {
convertView = mInflater.inflate(
R.layout.list_item,
null
);
}
((TextView) convertView.findViewById(R.id.text)).
setText(DATA[pos]);
((ImageView) convertView.findViewButId(R.id.icon)).
setImageBitmap((pos &
1
) ==
1
? mIcon1 : mIcon2);
return
convertView;
}
3
。利用viewholder模式,效率在提高
50
%
static
class
ViewHolder {
TextView text;
ImageView icon;
}
public
View getView(
int
pos, View convertView, ViewGroup parent){
ViewHolder holder;
if
(convertView ==
null
) {
convertView = mInflater.inflate(R.layout.list_item,
null
);
holder =
new
ViewHolder();
holder.text = (TextView) convertView.findViewById(
R.id.text));
holder.icon = (ImageView) convertView.findViewButId(
R.id.icon));
convertView.setTag(holder);
}
else
{
holder = (ViewHolder) convertView.getTag();
}
holder.text.setText(DATA[pos]);
holder.icon.setImageBitmap((pos &
1
) ==
1
? mIcon1 : mIcon2);
return
convertView;
}
adapter更新效率比较:
1
的更新不到
10
frames/second
2
的更新接近
30
frames/second
3
的更新接近
40
frames/second
背景和图像
视图背景图像总会填充整个视图区域
1
。图像尺寸不合适会导致自动缩放
2
。避免实时缩放
3
。最好预先缩放到视图大小
originalImage = Bitmap.createScaledBitmap(
originalImage,
//
- 提高android--listview的优化
- 提高android应用的效率--主要讲解listview的优化
- 提高android应用的效率--主要讲解listview的优化
- 提高android应用的效率--主要讲解listview的优化
- 提高android应用的效率--主要讲解listview的优化
- Android性能优化之提高ListView性能的技巧
- [Android优化进阶] 提高ListView性能的技巧
- Android性能优化之提高ListView性能的技巧
- Android性能优化之提高ListView性能的技巧
- Android性能优化之提高ListView性能的技巧
- Android性能优化之提高ListView性能的技巧
- 提高ListView滚动的高效优化
- Android ListView的优化
- Android ListView 的优化
- android ListView的优化
- android----------ListView的优化
- Android ListView的优化
- android ListView的优化
- 获得位图之GBK
- Python en:First Steps--part one
- 【COCOS2DX-LUA 脚本开发之五】Lua 使用OOP(面对对象思想编程),免Binding创建自定义lua类
- 沟通:用故事产生共鸣
- android 搭建NDK开发环境
- 提高android--listview的优化
- windows服务简单模式和写入windows 日志查错
- 重新定位id 验证提示框位置,避免超出了界面从而看不清楚
- java开源类库pinyin4j的使用
- Learning Ruby:Features of Ruby
- debug in Myeclipse ClassNotFoundException
- 二叉树系列问题1
- MyBatis多对一,一对多关联映射
- unity基础开发----Unity3D的uniSWF插件动态加载SWF UI资源
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
巴西属于欧洲吗
巴西商务签证费用
巴西乙级联赛
巴西花梨木家具价格
巴西著名球员
移民巴西需要多少钱
巴西玉髓价格
巴西花梨木价格
巴西玛瑙价格
巴西玛瑙原石价格
中国男篮迎战巴西
女排苦战五局逆转巴西
里约奥运会女排vs巴西
为什么建议不养巴西龟
贵妃有心疾得宠着巴西松子
里约奥运会女排中国vs巴西
巴解
巴解阳澄湖大闸蟹
巴贝
巴赫
康巴赫炒锅
康巴赫
友哈巴赫
巴赫简介
德国康巴赫
麦巴赫车标
麦巴赫
曼巴赫
康巴赫锅
巴赫旧约
巴赫平均律
巴赫林根
玛巴赫
格拉德巴赫
托马斯巴赫
巴赫测试
贾汉巴赫什
欧巴赫
万巴赫
奥尔巴赫
德巴赫钢琴