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

use*_*154 11 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>
Run Code Online (Sandbox Code Playgroud)

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

小智 5

我建议使用 A ScaleDrawable。它本质上改变了子可绘制对象的大小

android:scaleHeight="50%"
android:scaleWidth="50%"
Run Code Online (Sandbox Code Playgroud)

两者都表示为可绘制对象当前边界的百分比。


Jas*_*ueh 0

Drawable 指定如何在画布上绘制图像。您告诉可绘制对象它应该有多大,然后它会将底层图像缩放或剪切到该大小。您可以在可绘制对象上设置边界或调整 ImageView 的大小。

以下代码片段将可绘制对象绘制为具有所需大小的位图。

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);
Run Code Online (Sandbox Code Playgroud)