Android高级编程

来源:互联网 发布:权限管理 java 编辑:程序博客网 时间:2024/05/22 02:19

一、提高UI性能

1、提高Adapter和AdapterView的效率

重用已生成的Item View

添加ViewHolder,避免重复查找需要修改的控件

缓存Item数据

分段现实

实例:

class OptAdapter extends BaseAdapter{List<String> list;LayoutInflater inflater;ViewHolder viewHolder;        ...@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubif(convertView == null){convertView = inflater.inflate(R.layout.optitem, parent, false);TextView textView1 = (TextView) convertView.findViewById(R.id.tv1);TextView textView2 = (TextView) convertView.findViewById(R.id.tv2);viewHolder = new ViewHolder();viewHolder.setTextView1(textView1);viewHolder.setTextView2(textView2);viewHolder.setString(list.get(position).toString());convertView.setTag(viewHolder);}else{viewHolder = (ViewHolder) convertView.getTag();viewHolder.setString(list.get(position).toString());}viewHolder.getTextView1().setText(viewHolder.getString());viewHolder.getTextView2().setText(viewHolder.getString());return convertView;}public static class ViewHolder{TextView textView1,textView2;String string;public TextView getTextView1() {return textView1;}public void setTextView1(TextView textView1) {this.textView1 = textView1;}public TextView getTextView2() {return textView2;}public void setTextView2(TextView textView2) {this.textView2 = textView2;}public String getString() {return string;}public void setString(String string) {this.string = string;}}}

2、布局优化

使用观察布局工具 Hierarchy View

使用布局优化工具 lint

优化布局的层次结构

3、优化背景图

动态设置getWindow.setBackgroundDrawableResource(id)

静态设置,自定义主题

res/values/theme.xml

<resources xmlns:android="http://schemas.android.com/apk/res/android">    <style name="Theme.testTheme" parent="android:Theme">        <item name="android:windowBackground">@drawable/ic_launcher</item>    </style></resources>
调用android:theme = "@style/Theme.testTheme"

4、使用ViewStub

延迟加载不常用控件

提高改变布局速度

使用场景

界面频繁切换

界面高速切换

使用方法