2012-06-09 18 views
5

Skalowanie przy użyciu ScaleDrawable nie działa dla mnie.
Rozciągarka pozostaje w tym samym rozmiarze.Nie można przeskalować Rysowanie za pomocą ScaleDrawable

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

Co muszę zrobić, aby to naprawić?
Dzięki.

Odpowiedz

2

Jeśli zaznaczysz reference dla ScaleDrawable, zobaczysz, że metoda getDrawable zwraca podstawę do pobrania. Oznacza to, że zwraca ona w twoim przypadku d. Powinieneś po prostu zwrócić sd, ponieważ jest to już Drawable.

6

Musisz ustawić 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; 

poziom waha się od 0 do 10000: 10000 jest w pełnym rozmiarze, przy 0 nie wydaje się wcale.

Powiązane problemy