2012-12-12 1 views
0

Je veux utiliser setBounds() pour un élément spécifique dans la liste des calques, qui est utilisée comme arrière-plan pour un bouton. Mais je ne suis pas en mesure d'obtenir l'objet LayerDrawable pour appeler findDrawableByLayerId().Comment utiliser findDrawableByLayerId dans android?

Quelqu'un peut-il aider à résoudre ce problème?

Répondre

0

utilisé cette méthode pour créer le nouveau layredrawable :) Je ne utilise filndDrawablebylayerid pourrait() :(

@Override 
     public void setBackgroundDrawable(Drawable background) { 


     Log.d("button","setting new background "); 
     Drawable[] layers = new Drawable[5]; 
     Resources resources = getResources(); 




     layers[0] = resources.getDrawable(R.drawable.outer_rectangle); 
     layers[1] = resources.getDrawable(R.drawable.inner_rectangle); 
     layers[2] = resources.getDrawable(R.drawable.upper_ovel); 
     layers[3] = resources.getDrawable(R.drawable.gradient_fill); 
     layers[4] = resources.getDrawable(R.drawable.lower_ovel); 

     LayerDrawable layerDrawable = new LayerDrawable(layers); 

     layerDrawable.setLayerInset(0, 0, 0, 0, 0); 
     layerDrawable.setLayerInset(1, 3, 3, 3, 0); 
     layerDrawable.setLayerInset(2, 3, 15, 3, 25); 
     layerDrawable.setLayerInset(3, 3, 23, 3, 0); 
     layerDrawable.setLayerInset(4, 4, 60, 4, -5); 



     super.setBackgroundDrawable(layerDrawable); 
     } 
0

si vous voulez utiliser findDrawableByLayerId(int id), vous devriez faire setId(int index, int id) au début, sinon l'identifiant est toujours -1.