2017-04-02 1 views
1

J'ai une ressource png of a house liée si vous voulez l'afficher. C'est fondamentalement juste un bouton à la maison sombre.Modifier la couleur de la ressource

Je l'ai inclus et importé en tant qu'actif image en tant que dessinable.

Je tente de le définir comme un bouton, mais le modifier pour être une couleur blanche par programme.

Voici comment je tente de changer la couleur à blanc:

 ImageButton txtbtnAccept = new ImageButton(this); 
     this._surveyHomeButton = txtbtnAccept; 
     txtbtnAccept.setId(this.generateViewId()); 
     txtbtnAccept.setLayoutParams(new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); 
     layoutParams = (RelativeLayout.LayoutParams) txtbtnAccept.getLayoutParams(); 
     layoutParams.addRule(RelativeLayout.CENTER_VERTICAL, RelativeLayout.TRUE); 
     layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE); 
     layoutParams.height = 200; 
     layoutParams.width = 200; 
     txtbtnAccept.setScaleType(ImageView.ScaleType.FIT_CENTER); 
     txtbtnAccept.setAdjustViewBounds(true); 

     txtbtnAccept.setLayoutParams(layoutParams); 

     txtbtnAccept.setBackgroundResource(0); 
     txtbtnAccept.setVisibility(View.GONE); 

     Bitmap homeImage = BitmapFactory.decodeResource(getResources(), R.drawable.ic_action_home); 
     Drawable whiteImg = new BitmapDrawable(getResources(), homeImage); 

     whiteImg.setColorFilter(Color.WHITE, PorterDuff.Mode.MULTIPLY); 
     txtbtnAccept.setImageDrawable(whiteImg); 
     txtbtnAccept.setImageBitmap(homeImage); 

Toute idée où je vais mal?

Répondre

2

Ce que vous voulez est appelé teinter. Jetez un oeil à DrawableCompat.setTint(Drawable, int).

+0

M'a conduit sur le bon chemin - J'ai fini par utiliser un exemple ici - http://stackoverflow.com/questions/20121938/how-to-set-tint-for-an-image-view-programmatically-in- Android –