Android: Можно ли масштабировать xml?
Вот что я хочу сделать: у меня есть эта шкала 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%" />
И я хочу использовать его с этим drawable 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
Это проблема с объектом 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);
Я тестировал ваш код с помощью этого решения, и он работал нормально.