如何设置监听器位图在画布在我的自定义视图..



我有一个自定义视图,我在其中绘制了许多位图,

现在我想改变图像位图,当用户点击它。

如何做这个…?

这是我自定义视图的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。您可以访问发生单击的视图。然后您可以更改视图的位图

最新更新