Android: возможно ли масштабировать XML-файл для рисования? - PullRequest
14 голосов
/ 31 августа 2011

Вот что я хочу сделать: у меня есть этот масштаб xml:

<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/mydrawable" 
    android:scaleGravity="bottom"
    android:scaleHeight="50%" />

И я хочу использовать его с этим рисованным 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="rectangle">
            <gradient android:startColor="#FFFFFFFF"
                android:endColor="#FFFF0000"
                android:angle="90" />
        </shape>
    </item>
</layer-list>

Затем я установил масштаб xml в качестве фона для LinearLayout, но я ничего не вижу. Я что-то упустил или это невозможно (с помощью XML)?

1 Ответ

3 голосов
/ 08 мая 2012

Это проблема с объектом ScaleDrawable, которая не может быть решена в XML.

Но это легко, просто сделайте следующее:

// Get the scale drawable from your resources
ScaleDrawable scaleDraw = (ScaleDrawable)getResources().getDrawable(R.drawable.background_scale);
// set the Level to 1 (or anything higher than 0)
scaleDraw.setLevel(1);

// Now assign the drawable where you need it
layout.setBackgroundDrawable(scaleDraw);

Я протестировал ваш код с помощью этого решения, и он работал нормально.

...