我有一个自定义视图,我在其中绘制了许多位图,
现在我想改变图像位图,当用户点击它。
如何做这个…?
这是我自定义视图的onDraw方法。
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
Bitmap mBitmap = null;
int x = row * 20;
int y = clm * 20;
System.out.println("the x=" + x + "y=" + y);
int counter = 0;
for (int a = 0; a <= x; a += 20)
for (int b = 0; b <= y; b += 20) {
mBitmap = BitmapFactory.decodeResource(getResources(),R.drawable.test);
canvas.drawBitmap(mBitmap, a, b, null);
counter++;
}
}
要使多个位图可单击,您将需要使用ViewGroup类作为OnClickListener实现到视图。
更新你知道视图应该在布局里面。当你在屏幕上看到5个按钮时,它们是Layout(ViewGroup)中的5个视图。您添加的监听器位于视图上。如果你有多个你想要点击的位图,你需要制作as imageviews并将它们添加到布局中。如果您希望按照特定的顺序布局它们,则需要创建一个自定义视图组。使用自定义视图,您只能将click设置为整个视图,而不是视图的某些部分。也许你可以覆盖一个viewontouch事件并捕获触摸的x,y坐标并通过大量计算找到被点击的部分。但是这是一个大的hack和view组,这是做事情的自然方式。
View.SetOnClickListner()
适用于任何视图,只需在这里用您的customView替换View。您可以访问发生单击的视图。然后您可以更改视图的位图