0

我正在尝试创建一个复杂的 xml drawable 来表示一个列表框,并将其设置为 TextView 的背景。

接下来是我想要获得的内容以及我获得的内容的屏幕截图。

列表框截图

如您所见,我想将箭头放在右侧的渐变灰色框中。

查看 android 文档,似乎 xml 形状支持 size 标签,如此处所述http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape,但我无法让它工作!

这是我的 XML

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

  <item>
    <shape android:shape="rectangle">
      <stroke android:width="1dp" android:color="#999999" />
      <corners android:radius="5dp" />
      <solid android:color="#ffffff" />
    </shape>
  </item>

  <item>
      <shape android:shape="rectangle">
        <stroke android:width="1dp" android:color="#999999" />
        <corners android:topRightRadius="5dp" android:bottomRightRadius="5dp" />
        <gradient android:startColor="#606060" android:endColor="#303030" android:angle="270" />
        <padding android:top="7dp" android:bottom="7dp" android:right="7dp" />
      </shape>
  </item>

  <item>
    <bitmap android:src="@drawable/listbox_arrow_icon" android:gravity="right|fill_vertical" android:tileMode="disabled" />
  </item>

</layer-list>

我尝试在形状标签中指定 android:width ,如此处指定的http://developer.android.com/reference/android/graphics/drawable/ShapeDrawable.html#attr_android:width,但它也不起作用。

我不想使用代码来做,但如果它是不可避免的,最后,我想我会构建一个组件来代替 TextView 用于这些东西。

谢谢你的帮助!

@EDIT 抱歉,在复制和粘贴期间,我删除了第一个形状的实心标签!固定的!

4

1 回答 1

0

尝试这个 :

  <item><shape>
        <solid android:color="#fff" />

        <stroke android:width="1px" android:color="#10000000" />

        <corners android:radius="6dp" />

        <gradient android:angle="270" android:endColor="#10000000" android:startColor="#10FFFFFF" />
    </shape></item>
于 2012-09-24T07:10:45.490 回答