如何在drawable资源中设置位图的大小?

use*_*039 7 android bitmap drawable android-layout

我有以下drawable资源:

<layer-list>
    <item><shape>
            <gradient android:angle="225" android:endColor="#080517" android:startColor="#241c4d" />

            <stroke android:width="2.5dp" android:color="#FFFFFF" />

            <corners android:radius="5dp" />
        </shape></item>
        <item>
            <bitmap android:gravity="right|center_vertical" android:src="@drawable/tri_arrow_down_blue64" />
        </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

问题是:我无法指定位图的确切大小(在dp中).结果 - 位图影响控件的高度,背景设置为可绘制的.

我可以通过将控件放在FrameLayout中来解决问题,将drawable的位图部分提取到放置在同一FrameLayout中的ImageView中.这解决了这个问题,因为ImageView可以定义位图的确切宽度和高度(通过layout_width和layout_height).但是drawable没有这样(或类似)的属性.我想知道为什么会这样?并且有一种更优雅的方法可以在drawable XML中指定可绘制位图的大小 - 而不是使用FrameLayout实现那种丑陋的解决方法吗?

谢谢

Jon*_*han 2

我遇到了类似的问题,根据我的研究,没有办法实际设置图层列表中项目或位图的大小(这看起来很荒谬)。

我简单地通过缩小用于位图绘制的 png 图像的大小来解决我的问题。