android布局之GridView
<GridView
android:id="@+id/gridView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
//列宽度
android:columnWidth="100dp"
//列数
android:numColumns="auto_fit"
//两行之间的间距
android:verticalSpacing="10dp"
//缩放模式
android:stretchMode="columnWidth"
android:gravity="center">
</GridView>
java代码:
package google.android; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.BaseAdapter; import android.widget.GridView; import android.widget.ImageView; import android.widget.Toast; public class MainActivity extends Activity { private GridView gridView; private int[] images = new int[] { R.drawable.p1, R.drawable.p2, R.drawable.p3, R.drawable.p4, R.drawable.p5, R.drawable.p6, R.drawable.p7, R.drawable.p8, R.drawable.p9, R.drawable.p10}; private ImageAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); gridView = (GridView) findViewById(R.id.gridView); adapter=new ImageAdapter(); gridView.setAdapter(adapter);
//这里用到了一个导入包的快捷键--Ctrl+shift+o,否则new onItemClickListener会一直报错 gridView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Toast.makeText(MainActivity.this, "--->>"+id, 2).show(); } }); } private class ImageAdapter extends BaseAdapter { @Override public int getCount() { // TODO Auto-generated method stub return images.length; } @Override public Object getItem(int position) { // TODO Auto-generated method stub return images[position]; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ImageView imageView=null; if(convertView==null){ imageView=new ImageView(MainActivity.this); }else{ imageView=(ImageView)convertView; } //为ImageView指定高、宽 -- 即布局属性 imageView.setLayoutParams(new GridView.LayoutParams(85,85)); //控制图像应该如何缩放和移动,以使图像与 ImageView 一致。 /*** * ImageView.ScaleType: * 常量 值 描述 * matrix 0 用矩阵来绘图 * fitXY 1 拉伸图片(不按比例)以填充View的宽高 * fitStart 2 按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的左边 * fitCenter 3 按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的中间 * fitEnd 4 按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的右边 * center 5 按原图大小显示图片,但图片宽高大于View的宽高时,截图图片中间部分显示 * centerCrop 6 按比例放大原图直至等于某边View的宽高显示。 * centerInside 7 当原图宽高或等于View的宽高时,按原图大小居中显示;反之将原图缩放至View的宽高居中显示。 */ imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); //通过资源ID设置可绘制对象为该 ImageView 显示的内容。 imageView.setImageResource(images[position]); imageView.setPadding(80, 80, 80, 80); return imageView; } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; } }
最后效果图:


浙公网安备 33010602011771号