【问题标题】:GridView is not Scrolling smoothlyGridView 滚动不顺畅
【发布时间】:2013-12-13 05:45:24
【问题描述】:

我在可绘制文件夹中有 100 多个图像我正在 GridView 中创建画廊,但面临滚动问题。尽管我使用了 ViewHolder,但 gridView 滚动不顺畅...

这是我的代码...

public class MainActivity extends Activity {
int[100] Names_images =    {R.drawable.img1,R.drawable.img3,R.drawable.img4,R.drawable.img5,R.drawable.img6,...};//100 images

  String[100] names = {"name1","name2","name3","name4","name5","name6",...};// 100 names    
GridView gridview; 
CustomizedGridAdapter1 adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

gridview = (GridView) findViewById(R.id.gridView);

adapter = new CustomizedGridAdapter1();
gridview.setAdapter(adapter);

}


 static class viewHolderClass{
     TextView Name;
     ImageView name_img;
     TextView Number;
    }
         public class CustomizedGridAdapter1 extends BaseAdapter {

    LayoutInflater inflater=null; 
    @Override
    public int getCount() {
        return names.length;
    }

    @Override
    public Object getItem(int position) {

        return position;
    }

    @Override
    public long getItemId(int position) {

        return position;
    }

    @Override
    public View getView(int position, View v, ViewGroup parent) {

        viewHolderClass viewHolder=null;


        if(v == null){
        inflater = (LayoutInflater)          (MainActivity.this).getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
         v = inflater.inflate(R.layout.gridblock,parent, false);

         viewHolder = new viewHolderClass();

         viewHolder.Name = (TextView)v.findViewById(R.id.name);
         viewHolder.name_img = (ImageView)v.findViewById(R.id.name_image);
         viewHolder.Number = (TextView)v.findViewById(R.id.number);

         v.setTag(viewHolder);
         }else{
             viewHolder = (viewHolderClass)v.getTag();
         }

    viewHolder.Name.setText(names[position]);
    viewHolder.name_img.setImageResource(Names_images[position]);
    viewHolder.Number.setText(String.valueOf(position+1));  


        return v;
    }
  }//end of outer Class

【问题讨论】:

    标签: android gridview android-custom-view


    【解决方案1】:

    尝试使用图像惰性加载器,例如:

    https://github.com/nostra13/Android-Universal-Image-Loader

    【讨论】:

      【解决方案2】:

      如下更改您的getItem

      @Override
      public Object getItem(int position) {
      
          return names[position];
      }
      

      【讨论】:

      • thanx GrlsHu for respose...但滚动仍然不流畅。
      • @NaveedAli 你在哪里声明了你的Names_images[] 数组?
      • 内部外部类,viewHolderClass和CustomizedGridAdapter1是子类
      • @NaveedAli 我没听懂你。请发布您的数组的代码以及您如何传递它?
      • 你需要使用延迟加载的概念来让你的listview更快。
      猜你喜欢
      • 1970-01-01
      • 2012-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多