Java 选择在Android画布上绘制的单一视图
我是Android新手,发现了很多东西。但是现在我很累了。 我想做一个六边形棋盘游戏,用瓷砖。我找到了很多芭蕾舞短裙,最后决定画出我想画的六边形 我创建了一个从视图扩展的“Hex”类,添加了一些变量等等。以下是我在主XML布局中的内容:Java 选择在Android画布上绘制的单一视图,java,android,canvas,view,draw,Java,Android,Canvas,View,Draw,我是Android新手,发现了很多东西。但是现在我很累了。 我想做一个六边形棋盘游戏,用瓷砖。我找到了很多芭蕾舞短裙,最后决定画出我想画的六边形 我创建了一个从视图扩展的“Hex”类,添加了一些变量等等。以下是我在主XML布局中的内容: <flocoolb.app6.Hex android:layout_width="wrap_content" android:layout_height="wrap_content" flocoolb:r="50" andr
<flocoolb.app6.Hex
android:layout_width="wrap_content"
android:layout_height="wrap_content"
flocoolb:r="50"
android:id="@+id/h01"/>
<flocoolb.app6.Hex
android:layout_width="wrap_content"
android:layout_height="wrap_content"
flocoolb:r="50"
flocoolb:x="75"
flocoolb:y="43.30127"
android:id="@+id/h02"/>
<flocoolb.app6.Hex
android:layout_width="wrap_content"
android:layout_height="wrap_content"
flocoolb:r="50"
flocoolb:x="150"
android:id="@+id/h03"/>
r=大小,x和y是画布上的偏移量。
以下是我在活动中得到的信息:
但现在我想选择单十六进制。例如,我想选择左上角的,或右下角的。我在每个视图上都添加了OnClickListener,但实际上视图的大小就是整个屏幕。
例如,如果我更改视图的背景颜色,它会更改整个屏幕上的颜色。是否可以将视图限制为绘制的线
我希望你能理解我的意思。
非常感谢:)虽然,我不太了解您。但我建议您覆盖视图的onTouch方法。并在onTouch方法中实现您的功能。尽管,我不太理解你。但我建议你重写视图的onTouch方法。并用onTouch方法实现你的功能。每个十六进制占据整个屏幕。我在XML中声明了8个六边形,即我们在所附图片上看到的8个六边形。随着OnClickListener内部颜色的变化,我得到的是:此外,无论我触摸到什么十六进制,它都是foregroung上声明的最后一个。在OnClickListener中,如果我写“v.setVisibility(View.INVISIBLE);”,它们在XML布局中从最后一个到第一个都是不可见的。这里是我最后想要的:每个十六进制占据整个屏幕。我在XML中声明了8个六边形,即我们在所附图片上看到的8个六边形。随着OnClickListener内部颜色的变化,我得到的是:此外,无论我触摸到什么十六进制,它都是foregroung上声明的最后一个。在OnClickListener中,如果我写“v.setVisibility(View.INVISIBLE);”,它们在XML布局中从最后一个到第一个都是不可见的。下面是我最后想要的:我刚刚成功地更改了视图的背景色。我在Hex类中添加了一个方法“changeColor()”,该方法可以更改颜色、使视图无效并使用requestLayout()。然后在“OnClickListener”中,我从视图v获取ID,从该ID获取十六进制,并使用前面的方法“changeColor()”。太好了!但是现在我的问题在@wngxao的回答中描述了:视图占据了整个屏幕,因此,无论我在哪里触摸屏幕,所选视图都是XML布局中的最后一个视图。它可能会处理剪辑?我刚刚成功地更改了视图的背景色。我在Hex类中添加了一个方法“changeColor()”,该方法可以更改颜色、使视图无效并使用requestLayout()。然后在“OnClickListener”中,我从视图v获取ID,从该ID获取十六进制,并使用前面的方法“changeColor()”。太好了!但是现在我的问题在@wngxao的回答中描述了:视图占据了整个屏幕,因此,无论我在哪里触摸屏幕,所选视图都是XML布局中的最后一个视图,它可能处理剪切?