2016-05-11 22 views
0

Ich habe ein Symbol in Png in Zeichenfächern. Es ist schwarz mit dem transparenten Hintergrund. Wie kann ich die Symbolfarbe ändern, ohne ein weiteres Zeichen hinzuzufügen?Ändern Png-Symbolfarbe in aus ziehbaren Ressourcen

+0

Go Farbe und invers es – Haroon

+0

Ohne Farbe))))) Nur im Android – Igor

+0

Siehe http://stackoverflow.com/a/5837189/6097062 –

Antwort

1

Sie eine ColorFilter können Sie die Symbole Farbe zur Laufzeit ändern.

Probieren Sie etwas wie folgt aus:

Drawable mIcon= ContextCompat.getDrawable(getActivity(), R.drawable.your_icon); 
    mIcon.setColorFilter(ContextCompat.getColor(getActivity(), R.color.new_color), PorterDuff.Mode.MULTIPLY); 
    mImageView.setImageDrawable(mIcon); 
2

können Sie versuchen, diese

Drawable mDrawable = context.getResources().getDrawable(R.drawable.yourdrawable); 
mDrawable.setColorFilter(new 
PorterDuffColorFilter(0xffff00,PorterDuff.Mode.MULTIPLY)); 
0
Drawable mDrawable = context.getResources().getDrawable(R.drawable.balloons); 
mDrawable.setColorFilter(new 
PorterDuffColorFilter(0xffff00,PorterDuff.Mode.LIGHTEN)); 

Versuchen Sie, die oben Sie können mit PorterDuffColorFilter Play (0xffff00, PorterDuff.Mode.LIGHTEN) Sie können Schwarz verwenden usw.

0

Versuchen Sie, diese mit statische Methode:

public static Drawable changeDrawableColor(Drawable drawable, int color) { 
    drawable = DrawableCompat.wrap(drawable); 
    DrawableCompat.setTint(drawable, color); 
    return drawable; 
} 

Der Farbparameter könnte ein Colo sein r aus Ihren Ressourcen.

0

PorterDuff.Mode.SRC_IN

Verwendung diese Eigenschaft ändern Sie die Farbe des Symbols mit der gewählten genauen Farbe.

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { 
     Drawable mIcon= ContextCompat.getDrawable(this, R.drawable.icon_send); 
     mIcon.setColorFilter(ContextCompat.getColor(this, R.color.colorAccent), PorterDuff.Mode.SRC_IN); 
     ibSendMessage.setBackground(mIcon); 
} 

In neueren Versionen von Android können Sie dies in XML tun

android:backgroundTint="@color/colorAccent"