EX04_10.java
上传用户:vip_99
上传日期:2021-03-27
资源大小:61159k
文件大小:3k
源码类别:

android开发

开发平台:

Java

  1. package irdc.EX04_10;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. /* 本范例需使用到的class */
  5. import android.content.Context;
  6. import android.content.res.TypedArray;
  7. import android.view.View;
  8. import android.view.ViewGroup;
  9. import android.widget.AdapterView;
  10. import android.widget.BaseAdapter;
  11. import android.widget.Gallery;
  12. import android.widget.ImageView;
  13. import android.widget.Toast;
  14. import android.widget.AdapterView.OnItemClickListener;
  15. public class EX04_10 extends Activity 
  16. {
  17.   /** Called when the activity is first created. */
  18.   @Override
  19.   public void onCreate(Bundle savedInstanceState) 
  20.   {
  21.     super.onCreate(savedInstanceState);
  22.     setContentView(R.layout.main);
  23.     /*通过findViewById取得*/
  24.     Gallery g = (Gallery) findViewById(R.id.mygallery);
  25.     /* 添加一ImageAdapter并设置给Gallery对象 */
  26.     g.setAdapter(new ImageAdapter(this));
  27.     
  28.     /* 设置一个itemclickListener并Toast被点击图片的位置 */
  29.     g.setOnItemClickListener(new OnItemClickListener() 
  30.     {
  31.       public void onItemClick
  32.       (AdapterView<?> parent, View v, int position, long id)
  33.       {
  34.         Toast.makeText
  35.         (EX04_10.this, getString(R.string.my_gallery_text_pre)
  36.         + position+ getString(R.string.my_gallery_text_post), 
  37.         Toast.LENGTH_SHORT).show();
  38.       }
  39.     });
  40.   }
  41.   
  42.   /* 改写BaseAdapter自定义一ImageAdapter class */
  43.   public class ImageAdapter extends BaseAdapter 
  44.   {
  45.     /*声明变量*/
  46.     int mGalleryItemBackground;
  47.     private Context mContext;
  48.     
  49.     /*ImageAdapter的构造器*/
  50.     public ImageAdapter(Context c) 
  51.     {
  52.       mContext = c;
  53.       
  54.       /* 使用在res/values/attrs.xml中的<declare-styleable>定义
  55.       * 的Gallery属性.*/
  56.       TypedArray a = obtainStyledAttributes(R.styleable.Gallery);
  57.       
  58.       /*取得Gallery属性的Index id*/
  59.       mGalleryItemBackground = a.getResourceId
  60.       (R.styleable.Gallery_android_galleryItemBackground, 0);
  61.       
  62.       /*让对象的styleable属性能够反复使用*/ 
  63.       a.recycle();
  64.     }
  65.     
  66.     /* 覆盖的方法getCount,返回图片数目 */
  67.     public int getCount() 
  68.     {
  69.       return myImageIds.length;
  70.     }
  71.          
  72.     /* 覆盖的方法getItemId,返回图像的数组id */
  73.     public Object getItem(int position) 
  74.     {
  75.       return position;
  76.     }
  77.     public long getItemId(int position) 
  78.     {
  79.       return position;
  80.     }
  81.     
  82.     /* 覆盖的方法getView,返回一View对象 */
  83.     public View getView
  84.     (int position, View convertView, ViewGroup parent)
  85.     {
  86.       /*产生ImageView对象*/
  87.       ImageView i = new ImageView(mContext);
  88.       /*设置图片给imageView对象*/
  89.       i.setImageResource(myImageIds[position]);
  90.       /*重新设置图片的宽高*/
  91.       i.setScaleType(ImageView.ScaleType.FIT_XY);
  92.       /*重新设置Layout的宽高*/
  93.       i.setLayoutParams(new Gallery.LayoutParams(136, 88));
  94.       /*设置Gallery背景图*/
  95.       i.setBackgroundResource(mGalleryItemBackground);
  96.       /*返回imageView对象*/
  97.       return i;
  98.     }
  99.     
  100.     /*建构一Integer array并取得预加载Drawable的图片id*/
  101.     private Integer[] myImageIds = 
  102.     {
  103.       R.drawable.photo1,
  104.       R.drawable.photo2,
  105.       R.drawable.photo3,
  106.       R.drawable.photo4,
  107.       R.drawable.photo5,
  108.       R.drawable.photo6,
  109.     };   
  110.   } 
  111. }