15

Here is what I want to do: I have this scale 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%" />

And I want to use it with this 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>

Then I set the scale xml as a background for a LinearLayout, but I don't see anything. Am I missing something or is it not possible to do this (with XML)?

Dipak Keshariya
  • 22,193
  • 18
  • 76
  • 128
michelemarcon
  • 23,277
  • 17
  • 52
  • 68

1 Answers1

4

This is an issue with the ScaleDrawable object which cannot be resolved in XML.

But it is easy, just do the following:

// 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);

I tested your code using this solution and it worked fine.

Scott
  • 2,593
  • 1
  • 22
  • 23