我的按钮有一张图片。为了使用它,我必须为每个状态添加 1 个附加图像:1. 禁用 2. 选择 3. 按下等。
在 iOS 中,所有这些额外的状态都是自动处理的,并从提供的原始图像中延迟。
是否有可能在 Android 上实现这一点?
我的按钮有一张图片。为了使用它,我必须为每个状态添加 1 个附加图像:1. 禁用 2. 选择 3. 按下等。
在 iOS 中,所有这些额外的状态都是自动处理的,并从提供的原始图像中延迟。
是否有可能在 Android 上实现这一点?
是否有可能在 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" />
参考:按钮选择器
希望对你有帮助ツ</p>
这个答案是指如何在Android中处理按钮状态
您可以单独创建一个按钮布局文件并将其放入res > layout
文件夹中
例如:
如果布局文件名是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);
编辑
此外,您可以参考这个更接近回答您的问题的链接
您将不得不使用 android 的选择器。
<?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" />
看看这个链接。
据我所知,您需要在一个名为 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>
对于选中并按下,您可以使用带有根的 xml 文件作为按钮的背景,但对于禁用,我想您需要在 java 代码中处理它。我不确定禁用状态。