2017-05-15 2 views
0

j'ai essayé de charger sous forme d'image PNG drawable en ImageView, et définir la couleur de teinte pour cette ImageView avec ci-dessous le code ⇒ il fonctionne:Android - Comment définir la couleur de teinte pour l'image SVG chargée ImageView par Glide

imageView1.setImageResource(R.drawable.pngFile); 
imageView1.setColorFilter(getResources().getColor(R.color.colorAccent), android.graphics.PorterDuff.Mode.MULTIPLY); 

Je veux charger l'image SVG dans ImageView en utilisant Glide et définir la couleur de teinte pour cela. Mais après avoir chargé avec succès l'image SVG dans imageView, setColorFilter NOT WORKING.

je pouvais charger l'image SVG dans un autre ImageView en utilisant Glide avec le code ci-dessous:

// Setup RequestBuilder 
requestBuilder = Glide.with(mActivity) 
.using(Glide.buildStreamModelLoader(Uri.class, mActivity), 
InputStream.class) 
.from(Uri.class) 
.as(SVG.class) 
.transcode(new SvgDrawableTranscoder(), PictureDrawable.class) 
.sourceEncoder(new StreamEncoder()) 
.cacheDecoder(new FileToStreamDecoder<SVG>(new SvgDecoder())) 
.decoder(new SvgDecoder()) 
.placeholder(R.drawable.ic_facebook) 
.error(R.drawable.ic_web) 
.animate(android.R.anim.fade_in) 
.listener(new SvgSoftwareLayerSetter<Uri>()); 

// Use RequestBuilder with uri 
Uri uri = Uri.parse("http://upload.wikimedia.org/wikipedia/commons/e/e8/Svg_example3.svg"); 
requestBuilder 
.diskCacheStrategy(DiskCacheStrategy.SOURCE) 
.load(uri) 
.into(imageView2); 

Maintenant, je veux changer la couleur de teinte de mageView2 (après le chargement avec succès image SVG en imageView2), j'ai essayé le ci-dessous mais le code il ne fonctionne pas:

imageView2.setColorFilter(getResources().getColor(R.color.colorAccent), android.graphics.PorterDuff.Mode.MULTIPLY); 

S'il vous plaît aider! Merci beaucoup

Répondre

0

Si vous utilisez une icône peut-être cela peut être utile:

android:tint="@color/colorAccent" 

que vous pouvez essayer de modifier la classe:

ImageView imageViewIcon = (ImageView) listItem.findViewById(R.id.imageViewIcon); 
imageViewIcon.setColorFilter(getContext().getResources().getColor(R.color.blue)); 

plus d'informations dans ce fil est-il possible changer la couleur de l'icône de conception matérielle de xml dans Android? Material design icon colour from xml

+0

Cette solution de travail quand je chargeais image PNG sous forme drawable dans ImageView. Mais quand j'ai chargé l'image SVG dans imageView en utilisant Glide, ça ne marche pas. S'il vous plaît aider! – Sonzero

2

Vous pouvez utiliser android.support.v7.widget.AppCompatImageView remplacer ImageView et en utilisant

DrawableCompat.setTint(imvageView.getDrawable(), getResources().getColor(R.color.yourcolor)); 
+0

J'ai essayé de charger la forme d'image PNG drawable dans ImageView, et en utilisant votre code pour définir la couleur de la teinte ⇒ ça marche. Mais après avoir chargé avec succès l'image SVG dans imageView en utilisant Glide, setColorFilter NOT WORKING. Une autre solution? – Sonzero

+0

Que voulez-vous dire? Vous commentez la même chose pour d'autres réponses. Alors, quelle réponse fonctionne? –

+0

Toutes les trois façons de TRAVAILLER lorsque format image PNG chargé drawable dans ImageViewt. Mais lorsqu'il est chargé image SVG en imageView en utilisant Glide, les trois façons ne fonctionne pas. S'il vous plaît aider! – Sonzero