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

时间:2014-05-01 17:02:56

标签: 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>

我有 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>

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

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

enter image description here

2 个答案:

答案 0 :(得分: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>

并添加:

/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>

/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>

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

边界的笔划
填充

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

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

答案 1 :(得分:1)

问题在于:

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <stroke android:width="2dp" android:color="@color/black" />
</shape>

试试这个:

<shape android:shape="rectangle"> 
    <stroke android:width="2dp" android:color="@color/black" />
</shape>

当您复制和粘贴太多时会发生这种情况^^