我有自定义可绘制对象来代替按钮。例如,camButton
打开本机相机以便用户拍照。
camButton
提供了资源,因此可绘制对象可以是白色或绿色。这是camButton
应该如何表现:
1) 默认的无输入状态为白色。
2) 提供输入的状态为绿色。即如果用户已经成功拍摄了一张照片并且没有删除它,那么drawable 是绿色的来表示这一点。
3)当按钮为白色时按下按钮应将其变为绿色,直到用户释放按钮。
4)当它是绿色时按下按钮什么也不做。
下面是一个selector
测试类似的东西。但是这个选择器只在按下按钮时改变按钮的颜色。它解决了上面的#1 和#3,但不是#2 或#4。
cam_selector.xml
:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- green --> <item android:drawable="@drawable/cam_pressed" android:state_pressed="true"/>
<!-- green --> <item android:drawable="@drawable/cam_pressed" android:state_long_pressable="true"/>
<!-- white --> <item android:drawable="@drawable/cam_normal"/>
</selector>
这就是选择器在我的主布局中的实现方式:
<Button
android:id="@+id/camButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="@drawable/cam_selector"/>
在我的应用程序中,我测试是否有使用布尔值提供的输入。
问题:如何根据代码中的布尔值(或其他方式)设置camButton
to的状态?@drawable/cam_pressed
如果我不清楚,或者您需要更多信息,请告诉我。任何建议表示赞赏。谢谢!