阳光网驿-企业信息化交流平台【DTC零售连锁全渠道解决方案】

 找回密码
 注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

手机号码,快捷登录

老司机
查看: 1306|回复: 0

[转帖] Android Adapter优化

[复制链接]
  • TA的每日心情
    开心
    2012-3-7 10:15
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2012-2-4 11:57:12 | 显示全部楼层 |阅读模式
    AndroidUI优化方面可以从以下五个方面入手:

           Adapter优化
           背景和图片优化
           绘图优化
           视图和布局优化
           内存分配优化

           二、Adapter优化

           么是Adapter,可以先看看我的上一篇文章,Android开发——说说Adapter那点事 Adapter与View的连接主要依靠getView这个方法返回我们需要的自定义view。ListView是Android app中一个最最最常用的控件了,所以如何让ListView流畅运行,获取良好的用户体验是非常重要的。对ListView优化就是对Adapter中的getView方法进行优化。Google IO大会给出的优化建议如下:

    java代码:
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
    Log.d("MyAdapter", "Position:" + position + "---"
    + String.valueOf(System.currentTimeMillis()));
    ViewHolder holder;
    if (convertView == null) {
    final LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    convertView = inflater.inflate(R.layout.list_item_icon_text, null);
    holder = new ViewHolder();
    holder.icon = (ImageView) convertView.findViewById(R.id.icon);
    holder.text = (TextView) convertView.findViewById(R.id.text);
    convertView.setTag(holder);
    } else {
    holder = (ViewHolder) convertView.getTag();
    }
    holder.icon.setImageResource(R.drawable.icon);
    holder.text.setText(mData[position]);
    return convertView;
    }
    static class ViewHolder {
    ImageView icon;
    TextView text;
    }

    不建议大家用的方法:

    java代码:
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
    Log.d("MyAdapter", "Position:" + position + "---"
    + String.valueOf(System.currentTimeMillis()));
    final LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View v = inflater.inflate(R.layout.list_item_icon_text, null);
    ((ImageView) v.findViewById(R.id.icon)).setImageResource(R.drawable.icon);
    ((TextView) v.findViewById(R.id.text)).setText(mData[position]);
    return v; 11:
    }

    楼主热帖
    启用邀请码注册,提高发帖质量,建设交流社区
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    快速回复 返回顶部 返回列表