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",两列之间的边距
GridView简单使用
最新推荐文章于 2021-04-24 14:00:27 发布