调整图层列表项中的可绘制大小

时间:2015-08-05 05:38:47

标签: android android-layout android-xml

我有这个:

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

            <solid android:color="#000000"/>
            <size android:width="70dp" android:height="70dp"/>
        </shape>
    </item>

    <item android:drawable="@drawable/ic_person_white_48dp"
        android:adjustViewBounds="true"
        android:scaleType="fitXY"
        android:layout_width="10dp"
        android:layout_height="10dp"
        />
</layer-list>

如何调整drawable图片的大小?目前,它的形状太大了。

4 个答案:

答案 0 :(得分:4)

我建议使用A ScaleDrawable。它实质上改变了使用

绘制的子画面的大小
android:scaleHeight="50%"
android:scaleWidth="50%"

两者都表示为drawable当前界限的百分比。

答案 1 :(得分:1)

也许是老问题,但这就是我在图层列表中调整drawable的方法

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <layer-list>
            <item>
                <shape android:shape="oval">
                    <solid android:color="#000000"/>
                    <size android:width="10dp" android:height="10dp"/>
                    <padding android:bottom="30dp" android:top="30dp"
                             android:left="30dp" android:right="30dp"/>
                </shape>
            </item>
            <item>
                <bitmap android:src="@drawable/ic_person_white_48dp"/>
            </item>
        </layer-list>
    </item>
</selector>

不需要android:height或android:width

答案 2 :(得分:0)

Drawable指定如何在画布上绘制图像。你告诉drawable它应该有多大,它会将底层图像缩放或剪切到大小。您可以在drawable上setBounds或调整ImageView的大小。

以下代码段将drawable绘制为具有所需大小的位图。

Drawable yourDrawable = getResources().getDrawable(R.drawable.yourDrawable);
yourDrawable.setBonnds(0, 0, width, height);
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
yourDrawable.draw(canvas);

答案 3 :(得分:-3)

您可以尝试这样的事情:

<item
    android:width="10dp"
    android:height="10dp"
    android:drawable="@drawable/ic_person_white_48dp"
    android:bottom="30dp"
    android:top="30dp"
    android:left="30dp"
    android:right="30dp"
    android:gravity="center" />