5

Scaling with ScaleDrawable is not working for me.
The drawable is remained in the same size.

LayerDrawable layerDrawable = new LayerDrawable(layers);        
Drawable d = layerDrawable.getCurrent();
ScaleDrawable sd = new ScaleDrawable(d, 0, 0.01f, 0.01f); 
return sd.getDrawable();

What i need to do to fix it?
Thanks.

Rami
  • 2,098
  • 5
  • 25
  • 37

2 Answers2

6

You need to set the level:

LayerDrawable layerDrawable = new LayerDrawable(layers);        
Drawable d = layerDrawable.getCurrent();
ScaleDrawable sd = new ScaleDrawable(d, 0, 0.01f, 0.01f); 
sd.setLevel(8000);
return sd;

The level ranges from 0 to 10000: at 10000 it is full size, at 0 it does not appear at all.

Femi
  • 64,273
  • 8
  • 118
  • 148
2

If you check the reference for ScaleDrawable, you will see that the getDrawable method returns the base drawable. That is, it returns d in your case. You should just return sd as it is already a Drawable.

K-ballo
  • 80,396
  • 20
  • 159
  • 169