Подтвердить что ты не робот

Изменение размера в элементе списка слоев

У меня есть это:

<?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? В настоящее время он слишком велик для формы.

4b9b3361

Ответ 1

Я бы предложил использовать A ScaleDrawable. Это существенно изменяет размер дочернего ресурса, используя

android:scaleHeight="50%"
android:scaleWidth="50%"

Оба выражаются в процентах от привязываемой текущей границы.

Ответ 2

Drawable указывает, как изображение будет рисоваться на холсте. Вы говорите, насколько это возможно, насколько оно масштабируемо, и масштабирует или закрепили базовое изображение до размера. Вы можете setBounds рисовать или изменять размер 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);

Ответ 3

Может быть, это и старый вопрос, но это то, как я изменяю размер 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>

Нет необходимости в андроиде: высота или андроид: ширина

Ответ 4

Вы можете попробовать что-то вроде этого:

<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" />