<Android>列表、网格、画廊视图及适配器的绑定

列表视图和适配器的绑定

列表视图既可以使用ListView组件,也可以继承ListActivity。显示可以是ArrayAdapter,也可以是游标SimpleCursorAdapter,还可以是继承BaseAdapter展示其它视图。

Cursor c = getContentResolver().query(People.CONTENT_URI, null, null, null, null);

//获得通讯录联系人游标对象Cursor
startManagingCursor(c);

//实例化列表适配器
ListAdapter adapter = new SimpleCursorAdapter(this,
        android.R.layout.simple_list_item_1,
        c,
        new String[] {People.NAME} ,
        new int[] {android.R.id.text1});

setListAdapter(adapter);

14.网格视图(GridView)

网格视图配合BaseAdapter示例,图片缩略图网格显示

public class MainActivity extends Activity {

   private GridView gv;
  
    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        gv = (GridView)findViewById(R.id.GridView01);
        gv.setNumColumns(4);

        // gv.setNumColumns(3);

        // String[] strs = {"a","a1","a2","b","b1","b2","c","c1","c2"};

        // ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_gallery_item,strs);

        gv.setAdapter(new MyAdapter(this));

    }

    class MyAdapter extends BaseAdapter{

       private Integer[] imgs = {

                     R.drawable.gallery_photo_1,
                     R.drawable.gallery_photo_2,
                     R.drawable.gallery_photo_3,
                     R.drawable.gallery_photo_4,
                     R.drawable.gallery_photo_5,
                     R.drawable.gallery_photo_6,
                     R.drawable.gallery_photo_7,
                     R.drawable.gallery_photo_8,
                    
                     R.drawable.gallery_photo_1,
                     R.drawable.gallery_photo_2,
                     R.drawable.gallery_photo_3,
                     R.drawable.gallery_photo_4,
                     R.drawable.gallery_photo_5,
                     R.drawable.gallery_photo_6,
                     R.drawable.gallery_photo_7,
                     R.drawable.gallery_photo_8

       };

       Context context;

       MyAdapter(Context context){

              this.context = context;

       }

          public int getCount() {

                 return imgs.length;

          }

          public Object getItem(int item) {

                 return item;

          }

          public long getItemId(int id) {

                 return id;

          }

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

                  ImageView imageView;

               if (convertView == null) {

                   imageView = new ImageView(context);
                   imageView.setLayoutParams(new GridView.LayoutParams(45, 45));
                   imageView.setAdjustViewBounds(false);
                   imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
                   imageView.setPadding(8, 8, 8, 8);

               } else {

                   imageView = (ImageView) convertView;
               }

               imageView.setImageResource(imgs[position]);

               return imageView;
          }
    }
}

15.画廊视图

画廊视图和BaseAdapter配合,底部显示图片缩略图上面显示放大图片

public class MainActivity extends Activity implements OnItemSelectedListener,

          ViewFactory {

   private ImageSwitcher mSwitcher;

   private Integer[] mThumbIds = { R.drawable.sample_thumb_0,
                 R.drawable.sample_thumb_1, R.drawable.sample_thumb_2,
                 R.drawable.sample_thumb_3, R.drawable.sample_thumb_4,
                 R.drawable.sample_thumb_5, R.drawable.sample_thumb_6,
                 R.drawable.sample_thumb_7 };

   private Integer[] mImageIds = { R.drawable.sample_0, R.drawable.sample_1,
                 R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_4,
                 R.drawable.sample_5, R.drawable.sample_6, R.drawable.sample_7 };

   @Override
   public void onCreate(Bundle savedInstanceState) {

          super.onCreate(savedInstanceState);
          requestWindowFeature(Window.FEATURE_NO_TITLE);
          setContentView(R.layout.main);

          mSwitcher = (ImageSwitcher) findViewById(R.id.switcher);
          mSwitcher.setFactory(this);
          mSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,
                        android.R.anim.fade_in));
          mSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,
                        android.R.anim.fade_out));

          Gallery g = (Gallery) findViewById(R.id.gallery);

          g.setAdapter(new ImageAdapter(this));
          g.setOnItemSelectedListener(this);

   }

   public class ImageAdapter extends BaseAdapter {
          public ImageAdapter(Context c) {
                 mContext = c;
          }

          public int getCount() {
                 return mThumbIds.length;
          }

          public Object getItem(int position) {
                 return position;
          }

          public long getItemId(int position) {
                 return position;
          }

          public View getView(int position, View convertView, ViewGroup parent) {
                 ImageView i = new ImageView(mContext);

                 i.setImageResource(mThumbIds[position]);
                 i.setAdjustViewBounds(true);
                 i.setLayoutParams(new Gallery.LayoutParams(
                               LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
                 i.setBackgroundResource(R.drawable.picture_frame);
                 return i;
          }
          private Context mContext;
   }

   @Override
   public void onItemSelected(AdapterView<?> adapter, View v, int position,
                 long id) {
          mSwitcher.setImageResource(mImageIds[position]);
   }

   @Override
   public void onNothingSelected(AdapterView<?> arg0) {

   }

   @Override
   public View makeView() {

          ImageView i = new ImageView(this);

          i.setBackgroundColor(0xFF000000);
          i.setScaleType(ImageView.ScaleType.FIT_CENTER);
          i.setLayoutParams(new ImageSwitcher.LayoutParams(
                        LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

          return i;
   }
}
原文地址:https://www.cnblogs.com/lshs/p/4421076.html