答案 0 :(得分:0)
有很多方法可以做到这一点,最简单的方法可能是为每个按钮创建一个xml选择器,它将遵循你想要的状态(正常,按下,禁用等)。例如:
创建可绘制的hex_button_one.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Pressed -->
<item android:state_pressed="true" >
<bitmap android:antialias="true"
android:dither="true"
android:src="@drawable/myButtonPressed" />
</item>
<!-- normal -->
<item>
<bitmap android:antialias="true"
android:dither="true"
android:src="@drawable/myButtonNormal" />
</item>
</selector>
然后使用布局xml文件,您可以设置按钮的背景
<Button android:id="@+id/hexButtonOne"
android:layout_height="26dp"
android:layout_width="26dp"
android:layout_centerHorizontal="true"
android:background="@drawable/hex_button_one"/>
这个问题的主要问题是你会得到一个响应你触摸的矩形区域,如果按钮中的按钮组织起来,那么点击一个按钮实际上可能是另一个。
您可以通过覆盖Button类的onTouchEvent来解决此问题(意味着您必须对其进行扩展),如果它不在您希望它所在的区域内,则返回false。
总的来说,最好 - 也是最完整 - 的方法是使用onMeasure,onDraw等方法扩展View类,以完全按照您的意愿执行。但是,如果您是Android新手,或者之前没有这样做,我建议先尝试上面所说的内容。