GridView简单使用

public class MainActivity extends AppCompatActivity {

    private GridView gridView;
    private int[] imageResIds = {
            R.drawable.image0,
            R.drawable.image1,
            R.drawable.image2,
            R.drawable.image3,
            R.drawable.image4,
            R.drawable.image5,
            R.drawable.image6,
            R.drawable.image7,
            R.drawable.image8,
            R.drawable.image9,
            R.drawable.image10,
            R.drawable.image11,
            R.drawable.image12,
            R.drawable.image13
    };

    private String[] names = {
            "image0",
            "image1",
            "image2",
            "image3",
            "image4",
            "image5",
            "image6",
            "image7",
            "image8",
            "image9",
            "image10",
            "image11",
            "image12",
            "image13"
    };


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate( savedInstanceState );
        setContentView( R.layout.activity_main );



        gridView = (GridView) findViewById( R.id.gridView );
        gridView.setAdapter( new MyAdapter() );

        gridView.setOnItemClickListener( new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                Toast.makeText( getApplicationContext(),names[i],Toast.LENGTH_SHORT ).show();
            }
        } );        
    }

    public class MyAdapter extends BaseAdapter{
        @Override
        public int getCount() {
            return names.length;
        }

        @Override
        public Object getItem(int i) {
            return i;
        }

        @Override
        public long getItemId(int i) {
            return i;
        }

        @Override
        public View getView(int i, View view, ViewGroup viewGroup) {
            View contentView = null;
            Viewholder holder = null;

            if (view == null){

                LayoutInflater layoutInflater = LayoutInflater.from( MainActivity.this );
                contentView = layoutInflater.inflate( R.layout.gridview_item,viewGroup,false );
                holder =  new Viewholder( contentView );
                contentView.setTag(holder );

            }else{
                 contentView = view;
                 holder = (Viewholder) contentView.getTag();
            }
            ImageView imageView = holder.getImageView();
            imageView.setImageResource( imageResIds[i] );

            TextView textView = holder.getTextView();
            textView.setText( names[i] );

            return contentView;
        }
    }
    class Viewholder{
        private View view;
        private ImageView imageView;
        private TextView textView;

        public Viewholder(View view){
            this.view = view;
        }
        public ImageView getImageView() {
            if (imageView == null){
                imageView = (ImageView)view.findViewById( R.id.img );
            }
            return imageView;
        }
        public TextView getTextView() {
            if (textView == null) {
                textView = (TextView) view.findViewById( R.id.tv );
            }
            return textView;
        }
    }

}常用的属性:
android:numColumns="auto_fit" ,GridView的列数设置为自动
android:columnWidth="90dp",每列的宽度,也就是Item的宽度
android:stretchMode="columnWidth",缩放与列宽大小同步
android:verticalSpacing="10dp",两行之间的边距
android:horizontalSpacing="10dp",两列之间的边距
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值