您的位置:首页 > 其它

GRIDVIEW AND BASEADAPTER

2014-08-21 22:03 211 查看
GridView和BaseAdapter 搭配使用,能做出不错的图片列表显示效果,可以控制每行图片显示列数,动态加

载图片(假设有上千张图片),总之是包含了GridView和BaseAdapter 的优点和使用便利。

表格布局

<RelativeLayout android:layout_width="fill_parent"

android:layout_height="632dip"

android:layout_below="@id/top"

android:layout_above="@id/bot"

android:background="@drawable/view_item_list" >

<GridView android:id="@+id/gridView"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:horizontalSpacing="10dip"

android:verticalSpacing="17dip"

android:stretchMode="columnWidth"

android:gravity="center"/>

</RelativeLayout>

gridview.setNumColumns(4);//每行显示列数

ImageAdapter adapter=new ImageAdapter(MainActivity.this,maps);//maps adapater 具体显示内容

gridview.setAdapter(adapter);

gridview.setOnItemClickListener(new OnItemClickListener(){

public void onItemClick(AdapterView<?> arg0, View view, int position,

long arg3) {

// TODO Auto-generated method stub

Integer position1=new Integer(position);

if(selectedImg.contains(position1)){

//点击选中的image 还原状态

Bitmap map2=Utils.createSizeImage(maps.get(position), 75, 100);

ImageView view1=(ImageView)view;

view1.setImageBitmap(Utils.overlay(unSelected, map2));

selectedImg.remove(position1);

//Log.i(TAG, w)

}else{

//点击未选中的image 设置为选中的状态

Bitmap map2=Utils.createSizeImage(maps.get(position), 75, 100);

ImageView view1=(ImageView)view;

view1.setImageBitmap(Utils.overlay(selected, map2));

selectedImg.add(position1);

}

Log.v("TAG", String.valueOf(selectedImg.size()) + " " + selectedImg.toString());

}

});

}

class ImageAdapter extends BaseAdapter{

Context context;

List<Bitmap> maps;

public ImageAdapter(Context context,List<Bitmap> maps){

this.context=context;

this.maps=maps;

}

public View getView(int position, View convertView, ViewGroup parent) {

// TODO Auto-generated method stub

final ImageView imageView;

if (convertView == null) {

imageView = new ImageView(context);

imageView.setLayoutParams(new GridView.LayoutParams(100,125));//设置图片显示长宽 图片外部外部框架

} else {

imageView = (ImageView) convertView;

}

//imageView.setPadding(8, 8, 8, 8);

Bitmap map2=Utils.createSizeImage(maps.get(position), 75, 100);//设置图片显示长宽
真实图片

imageView.setImageBitmap(Utils.overlay(unSelected, map2)); //
图片框架和真实图片叠加显示

return imageView;

}

public int getCount() {

// TODO Auto-generated method stub

return maps.size();

}

public Object getItem(int position) {

// TODO Auto-generated method stub

return maps.get(position);

}

public long getItemId(int position) {

// TODO Auto-generated method stub

return position;

}

//图片叠加方法

public static Bitmap overlay(Bitmap bmp1, Bitmap bmp2) {

Bitmap bmOverlay = Bitmap.createBitmap(100,

125, Config.ARGB_8888);

Canvas canvas = new Canvas(bmOverlay);

canvas.drawBitmap(bmp1, 0, 0, null);

canvas.drawBitmap(bmp2, 12, 12, null);

canvas.save(Canvas.ALL_SAVE_FLAG);// 保存

canvas.restore();// 存储

return bmOverlay;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐