问题
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.
回答1:
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.
回答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
.
来源:https://stackoverflow.com/questions/10960422/unable-to-scale-drawable-with-scaledrawable