Android的所有按钮状态的唯一图像?

时间:2014-11-18 07:16:26

标签: android button android-imagebutton visualstates

我的按钮有图像。 为了使用它,我必须为每个状态增加1个图像: 1.残疾人 2.选中 3.按下 等。

在iOS中,所有这些附加状态都会自动处理,并从提供的原始图像延迟。

是否可以为Android完成此操作?

5 个答案:

答案 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" />

参考:Button Selector

希望它会帮助你ツ

答案 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" />

只是have a look of this link.

答案 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>