android 多选代码,android GridView多选效果的实例代码

package com.imageview;

import android.content.Context;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.graphics.drawable.BitmapDrawable;

import android.graphics.drawable.Drawable;

import android.graphics.drawable.LayerDrawable;

import android.util.Log;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.ImageView;

public class Adpter extends BaseAdapter {

private int[] image;

private boolean isChice[];

private Context context;

public Adpter(int[] im, Context context) {

this.image = im;

Log.i("hck", im.length+"lenght");

isChice=new boolean[im.length];

for (int i = 0; i < im.length; i++) {

isChice[i]=false;

}

this.context = context;

}

@Override

public int getCount() {

return image.length;

}

@Override

public Object getItem(int arg0) {

return image[arg0];

}

@Override

public long getItemId(int arg0) {

return arg0;

}

@Override

public View getView(int arg0, View arg1, ViewGroup arg2) {

View view = arg1;

GetView getView=null;

if (view == null) {

view = LayoutInflater.from(context).inflate(R.layout.item, null);

getView = new GetView();

getView.imageView=(ImageView) view.findViewById(R.id.image_item);

view.setTag(getView);

} else {

getView = (GetView) view.getTag();

}

getView.imageView.setImageDrawable(getView(arg0));

return view;

}

static class GetView {

ImageView imageView;

}

//主要就是下面的代码了

private LayerDrawable getView(int post) {

Bitmap bitmap = ((BitmapDrawable)context.getResources().getDrawable(image[post])).getBitmap();

Bitmap bitmap2=null;

LayerDrawable la=null;

if (isChice[post]== true){

bitmap2 = BitmapFactory.decodeResource(context.getResources(),

R.drawable.editable_mode_checked_tag);

}

if (bitmap2!=null) {

Drawable[] array = new Drawable[2];

array[0] = new BitmapDrawable(bitmap);

array[1] = new BitmapDrawable(bitmap2);

la= new LayerDrawable(array);

la.setLayerInset(0, 0, 0, 0, 0);   //第几张图离各边的间距

la.setLayerInset(1, 0, 65, 65, 0);

}

else {

Drawable[] array = new Drawable[1];

array[0] = new BitmapDrawable(bitmap);

la= new LayerDrawable(array);

la.setLayerInset(0, 0, 0, 0, 0);

}

return la; // 返回叠加后的图

}

public void chiceState(int post)

{

isChice[post]=isChice[post]==true?false:true;

this.notifyDataSetChanged();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值