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

时间:2014-05-19 02:57:59

标签: android android-layout bitmap 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>

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

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

感谢

1 个答案:

答案 0 :(得分:1)

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

我只是通过缩小我用于位图drawable的png图像的大小来解决我的问题。