XML投影和不同的状态

时间:2013-09-24 20:33:30

标签: android xml

我正在尝试为ListView定义一个背景,它具有投影和不同颜色的按下状态。这就是我所拥有的。

<?xml version="1.0" encoding="utf-8"?>

<!-- Drop Shadow Stack -->
<item>
    <shape>
        <padding android:bottom="1dp"/>
        <solid android:color="#00CCCCCC" />
    </shape>
</item>
<item>
    <shape>
        <padding  android:bottom="1dp"  />
        <solid android:color="#10CCCCCC" />
    </shape>
</item>
<item>
    <shape>
        <padding android:bottom="1dp"  />
        <solid android:color="#20CCCCCC" />
    </shape>
</item>
<item>
    <shape>
        <padding android:bottom="1dp" />
        <solid android:color="#30CCCCCC" />
    </shape>
</item>
<item>
    <shape>
        <padding android:bottom="1dp" />
        <solid android:color="#50CCCCCC" />
    </shape>
</item>

<!-- Background -->
<item android:state_pressed="true">
    <shape>
        <solid android:color="@color/fublue" />
    </shape>
</item>
<item android:state_activated="true">
    <shape>
        <solid android:color="@color/fublue" />
    </shape>
</item>
<item>
    <shape>
        <solid android:color="@color/white" />
    </shape>
</item>

然而,这不起作用。我需要做些什么才能让它发挥作用?

2 个答案:

答案 0 :(得分:1)

我不完全确定你为阴影做了什么,但是对于新闻状态,你必须使你的列表视图项目布局可以点击。然后为您的推送状态创建一个可绘制的背景选择器。

标准样式文件

yourcolorstates.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:platformrq="http://schemas.android.com/apk/res-auto" >
    <item
        android:background="#yourneutralcolor"
        android:state_pressed="false" />
    <item
        android:background="#yourpressedcolor"
        android:state_pressed="true" />
</selector>

答案 1 :(得分:0)

items包裹在状态selector中,并且需要设置状态。

例如

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