使用ViewHolder模式提高效率

 

        public View getView(int pos, View convertView, ViewGroup parent){ 

            ViewHolder holder;

            if (convertView == null) { 

                convertView = mInflater.inflate(R.layout.list_item, null); 

                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;

//                holder = new ViewHolder();

                } 

 

//     ViewHolder 模式, 效率提高 50% 

        static class ViewHolder { 

            TextView text;

            ImageView icon;

            } 

 

//        内存分配 不要创建 Java 对象 在性能敏感的代码里, 尽量避免创建 Java 对象

           测量: 布局: onMeasure() onLayout() 绘图:

           事件处理: dispatchTouchEvent(), onTouchEvent()

          Adapter: getView(), bindView()

          GC, 垃圾回收

          整个程序会暂停 慢 (大约几百个毫秒)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值