8

我有这个 XML drawable - tab_background_unselected:

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

    <item>
        <shape android:shape="rectangle" >
            <solid android:color="@color/background_grey" />            
        </shape>
    </item>

</layer-list>

创建这个形状:

背景矩形

这个箭头形状 xml 可绘制 - tab_selected_arrow:

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

    <item>
        <rotate
            android:fromDegrees="45"
            android:pivotX="-40%"
            android:pivotY="87%"
            android:toDegrees="45" >
            <shape android:shape="rectangle" >
                <solid android:color="@color/background_dark_green" />
            </shape>
        </rotate>
    </item>

</layer-list>

创建这个形状:

顶层三角形

我正在使用这个可绘制的 XML(而不是 PNG 文件)来创建图层列表:

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

    <item android:drawable="@drawable/tab_background_unselected">
    </item>
    <item android:drawable="@drawable/tab_selected_arrow">
    </item>

</layer-list>

但我希望最终图像看起来像这样:

最终图像

我不知道如何将箭头(第二项和顶层)的重力设置为中心|底部...我尝试过使用bitmap标签,但它只接受图像文件。

我需要这是一个 XML 可绘制的,因为

  1. 我需要它在一个可绘制的选择器内
  2. 我不想让它成为 PNG 并为每个屏幕分辨率创建不同的文件
4

1 回答 1

9

在 , 中使用内部Bitmap可绘制对象itemgravity为其设置:

<item android:drawable="@drawable/tab_background_unselected">
</item>
<item>
    <bitmap
        android:gravity="bottom|center_horizontal"
        android:src="@drawable/tab_selected_arrow" />
</item>
于 2013-11-25T13:14:06.827 回答