Android入门之GridView(纯Java)


Android入门之GridView(纯Java)

  1. import android.app.Activity;  
  2. import android.content.Context;  
  3. import android.graphics.Bitmap;  
  4. import android.graphics.BitmapFactory;  
  5. import android.graphics.Matrix;  
  6. import android.os.Bundle;  
  7. import android.view.View;  
  8. import android.view.ViewGroup;  
  9. import android.widget.BaseAdapter;  
  10. import android.widget.GridView;  
  11. import android.widget.ImageView;  
  12.   
  13. public class GridViewTest extends Activity {  
  14.   
  15.     private GridView gv=null;  
  16.       
  17.     public void onCreate(Bundle savedInstanceState) {  
  18.         super.onCreate(savedInstanceState);  
  19.         gv_init();  
  20.         setContentView(gv);  
  21.     }  
  22.       
  23.     /*gv初始化*/  
  24.     void gv_init(){  
  25.         gv=new GridView(this);  
  26.         GridView.LayoutParams lp=new GridView.LayoutParams(-1,-1);  
  27.         gv.setLayoutParams(lp);  
  28.         gv.setColumnWidth(90);  
  29.         gv.setNumColumns(GridView.AUTO_FIT);  
  30.         gv.setVerticalSpacing(10);  
  31.         gv.setHorizontalSpacing(10);  
  32.         gv.setAdapter(new ImageAdapter(this));  
  33.     }  
  34.       
  35.     /*ImageAdapter*/  
  36.     public class ImageAdapter extends BaseAdapter {  
  37.   
  38.         private Context context;  
  39.         //图片源数组   
  40.         private Integer[] imageInteger = {R.drawable.p00,R.drawable.p01,  
  41.                 R.drawable.p02,R.drawable.p03,  
  42.                 R.drawable.p04,R.drawable.p05,  
  43.                 R.drawable.p06,R.drawable.p07,  
  44.                 R.drawable.p08,R.drawable.p09,  
  45.                 R.drawable.p10,R.drawable.p11,  
  46.                 R.drawable.p12,R.drawable.p13,  
  47.                 R.drawable.p14,R.drawable.p15,  
  48.                 R.drawable.p16,R.drawable.p17,  
  49.                 R.drawable.p18,R.drawable.p19  
  50.         };  
  51.           
  52.         public ImageAdapter(Context c) {  
  53.             context = c;  
  54.         }  
  55.   
  56.         public int getCount() {  
  57.             return imageInteger.length;  
  58.         }  
  59.   
  60.         public Object getItem(int position) {  
  61.             return position;  
  62.         }  
  63.   
  64.         public long getItemId(int position) {  
  65.             return position;  
  66.         }  
  67.   
  68.         public View getView(int position, View convertView, ViewGroup parent) {  
  69.             ImageView imageView = new ImageView(context);  
  70.             imageView.setLayoutParams(new GridView.LayoutParams(90,-2));  
  71.             /*图片缩放处理,如果先设置了iamgeView的大小,则必须注意加载的图片大小不能超出,否则无法显示*/  
  72.             Bitmap bm = BitmapFactory.decodeResource(context.getResources(),imageInteger[position]);  
  73.             //原始尺寸   
  74.             int width=bm.getWidth();  
  75.             int height=bm.getHeight();  
  76.             //缩放比例   
  77.             if(width>90){  
  78.                 float scaleWidth=((float)90)/width;  
  79.                 float scaleHeight=scaleWidth;  
  80.                 // 创建操作图片用的matrix对象       
  81.                 Matrix matrix = new Matrix();     
  82.                 // 缩放图片动作       
  83.                 matrix.postScale(scaleWidth, scaleHeight);     
  84.                 //旋转图片 动作       
  85.                 //matrix.postRotate(45);      
  86.                 // 创建新的图片       
  87.                 Bitmap resizedBitmap = Bitmap.createBitmap(bm,0,0,width, height,matrix,true);     
  88.                 imageView.setImageBitmap(resizedBitmap);  
  89.             }else{  
  90.                 imageView.setImageBitmap(bm);  
  91.             }  
  92.             imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);  
  93.             return imageView;  
  94.         }  
  95.     }  
  96. }  

相关内容