在Android中,笔触没有与选择器一起应用

Cod*_*LaY 3 android android-layout

我有一个如下所示的layout.xml

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:background="@color/green"
    android:layout_marginLeft="2dp"
    android:layout_marginRight="2dp"
    android:layout_marginBottom="2dp" >

    <ImageButton
        android:id="@+id/leftArrowImageButton"
        android:background="@drawable/left_arrow_selector"
        android:layout_width="120dp"
        android:layout_height="50dp"
        android:gravity="left"
        android:src="@drawable/left_arrow">
    </ImageButton>        
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我有left_arrow_selector.xml,如下所示

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@color/white" android:state_selected="true"/>
    <item android:drawable="@color/white" android:state_pressed="true"/>
    <item android:drawable="@color/green">
    <shape xmlns:android="http://schemas.android.com/apk/res/android"> 
        <stroke android:width="2dp" android:color="@color/grey" />
    </shape>   
    </item>

</selector>
Run Code Online (Sandbox Code Playgroud)

其他一切工作正常,但中风没有得到应用.请就此提出建议.

编辑 - 添加图像...图像在那里,我想保持相同,但我想在视图中添加笔画.如果我删除了选择器,请查看我是如何添加灰色笔划的.

在此输入图像描述

Fan*_*mas 5

我这样做:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/arrow_left_white" android:state_selected="true"/>
    <item android:drawable="@drawable/arrow_left_white" android:state_pressed="true"/>
    <item android:drawable="@drawable/arrow_left_green" />
</selector>
Run Code Online (Sandbox Code Playgroud)

并添加:

/res/drawable/arrow_left_white.xml (只是为了保留选择器中的名称)

<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle"> 
    <stroke android:width="2dp" android:color="@color/grey" />
    <solid android:color="@color/azure">
</shape>
Run Code Online (Sandbox Code Playgroud)

和

/res/drawable/arrow_left_green.xml (也只是为了保留选择器中的名称)

<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle"> 
    <stroke android:width="2dp" android:color="@color/black" />
    <solid android:color="@color/brown">
</shape>
Run Code Online (Sandbox Code Playgroud)

因此,将选择器设置为背景,将图像设置为src,您将拥有一个有状态的ImageButton(使用我选择的颜色)从天蓝色背景上的黄色左三角形转变为具有相同黄色的灰色边框在一个棕色backgrounf的三角与黑色边框.


用于填充的边框实体的笔划

参考:http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape

您可以通过四舍五入和/或使用渐变来添加一些香料.

  • 很高兴能以某种方式提供帮助. (2认同)