如何在自定义形状xml中添加图像

时间:2014-07-28 10:31:49

标签: android xml android-layout android-ui

我正在编写XML选择器

<?xml version="1.0" encoding="utf-8"?>
   <selector xmlns:android="http://schemas.android.com/apk/res/android" >
   <item android:drawable="@drawable/image_state2" android:state_pressed="true"/>
   <item android:drawable="@drawable/image_state1"/>
</selector>

我只想让state1变得透明。所以要看的图像是 -

STATE1

   <shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >

<gradient
    android:angle="270"
    android:endColor="#00000000"
    android:startColor="#00000000" />

现在我想让state2对我已经完成的一些照片进行着色。我的问题是,除了阴影渐变,我想在中心出现一个图标。我不知道如何通过xml

添加它

STATE2

   <shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >

<gradient
    android:angle="270"
    android:endColor="#80000000"
    android:startColor="#80000000" />

1 个答案:

答案 0 :(得分:8)

您可以使用以下的图层列表来执行此操作:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
 <item>
  <shape android:shape="rectangle" >
      <gradient
    android:angle="270"
    android:endColor="#80000000"
    android:startColor="#80000000" />
  </shape>
 </item>
 <item>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/background"
android:tileMode="repeat" android:gravity="center" />
 </item>
</layer-list>

将上述内容保存为@ drawable / image_state2。

欲了解更多信息: Resize bitmap inside a drawable layer-list