Android 在GridView中用一个新图像替换Touch上的旧图像
我有一个自定义的gridview,其中有他们的图像。所以关于图像的触摸,我想用一个新的图像替换图像,这样用户就可以知道他触摸了哪些图像。 我得到了用户在int item_位置触摸的项目位置 我使用的代码Android 在GridView中用一个新图像替换Touch上的旧图像,android,gridview,Android,Gridview,我有一个自定义的gridview,其中有他们的图像。所以关于图像的触摸,我想用一个新的图像替换图像,这样用户就可以知道他触摸了哪些图像。 我得到了用户在int item_位置触摸的项目位置 我使用的代码 GridView gv1; CustomList adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); gv1
GridView gv1;
CustomList adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
gv1 = (GridView) findViewById(R.id.gridView1);
adapter = new CustomList(this, s, images);
gv1.setAdapter(adapter);
gv1.setOnTouchListener(this);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
x = event.getX();
y = event.getY();
item_position = gv1.pointToPosition((int) x, (int) y);
View v1 = (View) gv1.getChildAt(item_position);
Bitmap b = BitmapFactory.decodeResource(this.getResources(),
R.drawable.a1);
v1.draw(new Canvas(b));
adapter.notifyDataSetChanged();
}
id此代码行v1.drawnew Canvasb;工作是指绘制图像吗?不确定,因为它没有显示在gridview中,那么我怎么说@DhwanikGandhiTry adding view.invalidate;抽签后
public class CustomList extends ArrayAdapter<String>
{
private final Activity context;
private final String[] web;
private final Integer[] imageId;
public CustomList(Activity context, String[] web, Integer[] imageId) {
super(context, R.layout.list_single, web);
this.context = context;
this.web = web;
this.imageId = imageId;
}
@Override
public View getView(int position, View view, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View rowView = inflater.inflate(R.layout.list_single, null, true);
// LinearLayout imageView = (LinearLayout)
// rowView.findViewById(R.id.img);
ImageView imageView = (ImageView) rowView.findViewById(R.id.img);
// TextView txt = (TextView) rowView.findViewById(R.id.txt);
// txt.setText(web[position]);
imageView.setImageResource(imageId[position]);
// imageView.setBackgroundResource(imageId[position]);
return rowView;
}
}