2012-06-09 17 views
5

Escalar con ScaleDrawable no funciona para mí.
El dibujante se mantiene en el mismo tamaño.No se puede escalar Se puede dibujar con ScaleDrawable

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

¿Qué necesito hacer para solucionarlo?
Gracias.

Respuesta

2

Si marca reference para ScaleDrawable, verá que el método getDrawable devuelve la base dibujable. Es decir, devuelve d en su caso. Simplemente debe devolver sd ya que es un Drawable.

6

Es necesario configurar el 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; 

El nivel varía de 0 a 10000: a 10000 que es de tamaño completo, a 0 no aparece en absoluto.