我的按钮有图像。 为了使用它,我必须为每个状态增加1个图像: 1.残疾人 2.选中 3.按下 等。
在iOS中,所有这些附加状态都会自动处理,并从提供的原始图像延迟。
是否可以为Android完成此操作?
答案 0 :(得分:1)
是否可以为Android完成此操作?
不,不是。您需要随身携带所有状态图像才能定义选择器
您可以定义button_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Selected state -->
<item android:drawable="@drawable/button_bg_selected" android:state_selected="true"></item>
<!-- Pressed state -->
<item android:drawable="@drawable/button_bg_pressed" android:state_pressed="true"></item>
<!-- Disabled state -->
<item android:drawable="@drawable/button_bg_disabled" android:state_enabled="false"></item>
<!-- Normal state -->
<item android:drawable="@drawable/button_bg_normal"></item>
</selector>
然后只需将此选择器指定为按钮的background
<Button
android:id="@+id/button1"
android:background="@drawable/button_selector"
android:layout_width="200dp"
android:layout_height="126dp"
android:text="Hello" />
希望它会帮助你ツ
答案 1 :(得分:0)
此答案涉及您如何处理Android中的按钮状态
您可以单独创建一个按钮布局文件,放在res > layout
文件夹
For Instance:
如果布局文件名是btn.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/btn_pressed" />
<item android:drawable="@drawable/btn_normal"/>
</selector>
您可以设置BackgroundResource
Button
yourButton.setBackgroundResource(R.layout.btn);
修改强>
此外,您可以参考更接近您的问题的link
答案 2 :(得分:0)
你必须使用选择器安卓。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/pressed"
android:state_pressed="true" />
<item android:drawable="@drawable/focused"
android:state_focused="true" />
<item android:drawable="@drawable/normal" />
</selector>
android:background="@drawable/selector_button" />
答案 3 :(得分:0)
对于选中和按下,您可以使用带有root的xml文件作为按钮的背景但是对于禁用我猜你需要在java代码中处理它。我不确定残疾人状态。
答案 4 :(得分:0)
据我所知,你需要在名为cursor的新资源文件中处理这种状态:例如:
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/edittext_selector" android:layout_height="fill_parent"
android:layout_width="fill_parent">
<!-- Image display in background in select state -->
<item
android:state_pressed="true"
android:drawable="@drawable/edittextback1">
</item>
<!-- Image display in background in select state -->
<item
android:state_enabled="true"
android:state_focused="true"
android:drawable="@drawable/edittextback2">
</item>
<!-- Default state -->
<!--<item android:state_enabled="true"-->
<!--android:drawable="@drawable/your_ninepath_image">-->
<!--</item>-->
</selector>