package com.example.day0328_gridview;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
public class MainActivity extends Activity {
//定义个网格布局对象
private GridView gridView;
//定义图片资源ID数组
private int[] resIds = new int[]{
R.drawable.img1,R.drawable.img2,
R.drawable.img3,R.drawable.img4,
R.drawable.img5,R.drawable.img6,
R.drawable.img7,R.drawable.img8,
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获得GridView对象
gridView = (GridView) findViewById(R.id.gv);
//通过BASEAdapter把图片显示至gridView上
gridView.setAdapter(new BaseAdapter() {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View view =null;
ViewHolder holder=null;
//判断缓存是否为空
if (convertView==null) {
//把布局填充成一个View对象
view = LayoutInflater.from(MainActivity.this).inflate(R.layout.item, null);
//创建内部对对象
holder =new ViewHolder();
//拿到ImageView对象
holder.imageView =(ImageView) view.findViewById(R.id.iv);
//把holder封装至view里面
view.setTag(holder);
}else{
//如果有缓存就直接从缓存中取出来
view =convertView;
//从view里面获取ViewHolder对象
holder =(ViewHolder) view.getTag();
}
//构造位图对象
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), resIds[position]);
//把位图对象设置到ImageView上
holder.imageView.setImageBitmap(bitmap);
//返回一个View对象
return view;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return resIds.length;
}
//内部类来封装属性
class ViewHolder{
public ImageView imageView;
}
});
}
}
//布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<!--
GridView 网格布局
android:numcolumns 每行有多少列(auto_fit自适配)
-->
<GridView
android:id="@+id/gv"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:numColumns="auto_fit"
android:horizontalSpacing="5dp"
android:verticalSpacing="5dp"
android:columnWidth="111dp"
/>
</RelativeLayout>
//image布局
<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/iv"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</ImageView>