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; } }

 

最后效果图:

 

posted @ 2014-02-18 21:43  一个人的秋千  阅读(371)  评论(0)    收藏  举报