`
熊滔爱孟涛静
  • 浏览: 124659 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

ListView优化

阅读更多

/**
  *
  * 博雅商城使用
  */
 private class MyListViewAdapter extends BaseAdapter {

  private LayoutInflater mLayoutInflater;

  public MyListViewAdapter(Context context) {
   this.mLayoutInflater = LayoutInflater.from(context);
  }

  @Override
  public int getCount() {
   return dataList.size();
  }

  @Override
  public Object getItem(int position) {
   return null;
  }

  @Override
  public long getItemId(int position) {
   // TODO Auto-generated method stub
   return 0;
  }

  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
   ViewHolder holder = null;
   if (convertView == null) {
    holder = new ViewHolder();
    convertView = mLayoutInflater.inflate(R.layout.tools_row, null);
    convertView.setBackgroundResource(R.drawable.dtht_1);
    if (RoomBitmapIds.getTypeface() == null) {
     RoomBitmapIds.initTypeface(mActivity); // 初始化字体
    }
    Typeface tf = RoomBitmapIds.getTypeface();
    holder.icon = (ImageView) convertView.findViewById(R.id.icon);

    holder.jz = (TextView) convertView.findViewById(R.id.jz);
    holder.jz.setTypeface(tf);
    holder.jg = (TextView) convertView.findViewById(R.id.jg);
    holder.jg.setTypeface(tf);
    holder.buy = (RelativeLayout) convertView
      .findViewById(R.id.buy);

    convertView.setTag(holder);
   } else {
    holder = (ViewHolder) convertView.getTag();
   }
   System.out.println((String) dataList.get(position).get(
     "productIcon"));
   holder.icon.setBackgroundResource(Market.icons
     .get((String) dataList.get(position).get("productIcon")));
   holder.jz.setText((String) dataList.get(position)
     .get("productName"));
   int bj = Integer.parseInt(String.valueOf(dataList.get(position)
     .get("productBj")));
   if (bj != 0) {
    holder.jg.setText(bj + "博雅币");
   } else {
    holder.jg.setText(String.valueOf(dataList.get(position).get(
      "productYj"))
      + "游戏币");
   }
   return convertView;
  }

 }

 /**
  *
  * 博雅商城使用
  */
 public final class ViewHolder {
  public ImageView icon;
  TextView jz;
  TextView jg;
  RelativeLayout buy;
 }

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="horizontal" android:layout_width="fill_parent"
 android:layout_height="40dip">
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent" android:layout_height="fill_parent"
  android:background="@drawable/storecell_bg">
  <!-- 头片 -->
  <ImageView android:id="@+id/icon" android:layout_width="40dip"
   android:layout_height="40dip" android:layout_alignParentLeft="true"
   android:layout_marginLeft="10dip" android:gravity="center"
   android:background="@drawable/vip_cash"
   android:layout_centerVertical="true" />
  <!-- 价值 -->
  <TextView android:id="@+id/jz" android:layout_width="wrap_content"
   android:layout_height="20dip" android:layout_toRightOf="@id/icon"
   android:layout_alignTop="@id/num" android:textColor="#000000"
   android:textStyle="bold" android:gravity="left" />
  <!-- 价格 -->
  <TextView android:id="@+id/jg" android:layout_width="wrap_content"
   android:layout_height="20dip" android:layout_toRightOf="@id/icon"
   android:layout_below="@id/jz" android:textColor="#555555"
   android:gravity="left" />
  <!-- 购买 -->
  <RelativeLayout android:id="@+id/buy"
   android:layout_width="wrap_content" android:layout_height="wrap_content"
   android:gravity="center" android:layout_alignParentRight="true"
   android:layout_marginRight="10dip" android:background="@drawable/vip_btn"
   android:layout_centerVertical="true">
   <TextView android:text="@string/buy" android:textColor="#ffffff"
    android:textSize="16sp" android:layout_width="wrap_content"
    android:paddingBottom="5dip" android:layout_height="wrap_content"
    android:gravity="center" android:layout_centerVertical="true"
    android:layout_centerHorizontal="true" />
  </RelativeLayout>


 </RelativeLayout>
</LinearLayout>

分享到:
评论

相关推荐

    android之listview优化+分类显示

    1. **ViewHolder模式**:这是ListView优化的核心。通过复用convertView,避免频繁创建新的View对象。ViewHolder模式确保了每个item的视图状态在滚动时能得到快速恢复,降低了内存分配和对象创建的开销。在`getView()...

    ListView优化及加载图片时内存溢出

    1. **ListView优化策略** - **ViewHolder模式**:为了解决ListView滚动时频繁创建与销毁视图导致的性能问题,我们可以使用ViewHolder设计模式。这个模式缓存了视图的引用,减少了findViewById()的调用次数,提高了...

    listview 优化

    综上所述,CocosCreator的ListView优化涉及到多方面的策略,包括复用机制、数据绑定、异步加载、绘制优化等。通过使用`GListView.js`这样的扩展库,开发者可以更好地控制ListView的行为,提高应用在处理大量数据时的...

    ListView优化Demo

    总结,ListView优化主要包括视图复用、适配器优化、ViewHolder模式、数据分页加载等,而`SwipeRefreshLayout`提供了便捷的下拉刷新功能。通过这些策略,我们可以使ListView在处理大数据量时仍保持流畅,提供更好的...

    最经典的listView优化demo

    本教程将通过"最经典的listView优化demo",为初学者提供一份详尽的Android ListView适配器优化实践。 首先,我们要理解ListView的工作原理。ListView采用了一种叫做“视图复用”的机制,即只有当前屏幕可见的几项...

    listview优化图片缓存例子

    本示例“listview优化图片缓存例子”将详细介绍如何利用缓存策略来提高ListView加载图片的效率。 一、图片缓存的重要性 在ListView中,由于屏幕空间有限,只有部分列表项可见。当用户滚动时,一些不再可视的列表项...

    Android开发之listview优化+图片异步加载缓存+避免图片显示闪烁

    ListView优化** ListView的优化主要涉及以下几个方面: 1.1 **convertView复用机制**:ListView的Adapter中,`getView()`方法会创建并填充新的视图,但为了提高性能,应充分利用convertView,通过`convertView....

    ListView的优化及分类显示

    1. **使用ViewHolder模式**:这是ListView优化的核心,通过复用convertView来减少 findViewById 的次数,提高性能。ViewHolder类存储了ListView项布局中的各个视图引用,当需要创建新视图时,直接从ViewHolder中获取...

    解析json实现listview,listView优化、子控件点击事件等实现

    文件"ListView"可能是示例代码,包含了一个简单的ListView应用实例,包括JSON解析、Adapter实现、ListView优化、图片加载和子控件点击事件处理等功能。通过查看和学习这个代码,你可以更好地理解和掌握上述知识点。...

    Android ListView优化 异步加载图片

    五、ListView优化策略 1. 使用 ViewHolder 设计模式:缓存convertView中的子视图,避免每次绑定数据时的查找操作。 2. 图片缓存:利用内存缓存和磁盘缓存,如使用Universal Image Loader、Picasso或Glide库,它们...

    listview优化

    以下是对ListView优化的一些关键点和策略的详细说明: 1. **复用convertView**:ListView的工作机制是基于视图缓存的,即只有当前屏幕可见的item需要被创建。convertView参数在getView方法中用于传递已经创建并可以...

    android BaseAdapter listView优化

    本篇文章将深入探讨ListView与BaseAdapter的工作原理,并详细介绍如何进行性能优化。 首先,我们来理解一下Adapter在Android中的作用。Adapter是连接数据源和UI组件的桥梁,它负责将数据转化为可显示的视图。在...

    Android ListView性能优化

    ViewHolder模式是ListView优化的核心技巧,它可以避免在滚动时频繁地创建和查找视图对象。通过创建一个ViewHolder类来持有每个列表项视图中的子视图引用,并在getView()方法中重用已存在的ViewHolder,可以显著减少...

    ListView优化示例源码

    以下是对"ListView优化示例源码"的详细解读。 1. **复用机制**:ListView的核心优化策略是视图复用,即`convertView`。在`getView()`方法中,如果传入的convertView不为空,那么我们就可以复用这个已经创建过的视图...

    android listview 优化 实例

    ViewHolder模式是ListView优化的核心策略之一。它通过缓存convertView中的子View,减少findViewById()的调用次数,从而提升性能。创建一个ViewHolder类,持有ListView每一项所需的视图引用,然后在getView()方法中...

    ListView 优化

    ViewHolder模式是ListView优化的关键。它通过缓存convertView的子视图,减少findViewById的调用次数,提高滚动时的性能。在getView()方法中,先检查convertView是否为空,如果不空,则直接通过ViewHolder获取视图,...

    listView优化

    以下是一些关于ListView优化的关键知识点: 1. **分页加载**:在处理大数据集时,不应一次性加载所有数据,而是采用分页加载策略。当用户滚动到列表底部时,通过异步请求加载更多数据。这样可以减少内存消耗,提高...

    listview优化比较

    综上所述,ListView优化是一个多方面的工作,包括缓存策略、数据加载方式、图片处理等多个环节。通过对这些环节的优化,我们可以显著提高ListView的性能,提供更流畅的用户体验。在实际开发中,结合“无缓存”、“一...

Global site tag (gtag.js) - Google Analytics