我有一个自定义视图,我在其中绘制了许多位图,
现在我想在用户点击它时更改图像位图。
如何做到这一点......?
这是我的自定义视图的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++;
}
}
答案 0 :(得分:0)
View.SetOnClickListner()
适用于任何视图,只需将View替换为您的customView。您可以访问发生单击的视图。然后你可以改变视图的位图。
答案 1 :(得分:0)
要使多个位图可单击,您将需要使用ViewGroup类,因为OnClickListener已实现到视图中。
更新
你确实认识到布局内部的观点。当您在屏幕上看到5个按钮时,它们是布局(ViewGroup)内的5个视图。您添加的侦听器位于视图上。如果您想要单击多个位图,则需要将其作为图像视图并将其添加到布局中。如果要按特定顺序排列它们,则需要创建自定义视图组。使用自定义视图,您只能将单击设置为整个视图而不是视图的一部分。也许你可以覆盖onTouch事件的视图并捕获触摸的x,y坐标并找到通过大量计算点击的部分。但这就是一个大型的黑客和观点小组是自然的做事方式。