【发布时间】:2024-01-30 04:25:01
【问题描述】:
我是 Android 新手,我发现了很多东西。但现在我很困惑。 我想做一个六边形棋盘游戏,有瓷砖。找了很多图图,最后决定画出我想画的糊状六边形。
我创建了一个从 View 扩展的“Hex”类,添加了一些变量等等。这是我在主要 XML 布局中放置的内容:
<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=size, x 和 y 是画布上的偏移量。 这是我的活动: Main activity screen
但现在我想选择单个十六进制。例如,我想选择左上角或右下角。我在它们每个上都添加了 OnClickListener,但实际上视图的大小是整个屏幕。 例如,如果我更改视图的背景颜色,它会在整个屏幕上更改该颜色。是否可以将视图限制为绘制的线条?
我希望你能明白我的意思。 非常感谢:)
【问题讨论】:
-
我刚刚成功更改了视图的背景颜色。我在 Hex 类中添加了一个方法“changeColor()”来更改颜色、使视图无效并使用 requestLayout()。然后在“OnClickListener”中,我从 View v 中获取 ID,从该 ID 中获取 Hex,并使用前面的方法“changeColor()”。那挺好的!但是现在我的问题在@wngxao 的回答中得到了描述:视图占据了全屏,因此,无论我触摸屏幕,所选视图都是 XML 布局中的最后一个
-
它可以处理剪裁here?
标签: java android canvas view draw