2017-05-15 21 views
0

에 의해 이미지 뷰로드 SVG 이미지를 색조 색상을 설정하는 방법은이을 작동하고 이미지 뷰에 PNG 이미지 형태로 드로어 블을로드하려고 및 코드 을 ⇒ 아래이 이미지 뷰에 대한 색조 색상을 설정 :안드로이드는 글라이드

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

글라이드를 사용하여 ImageView에 SVG 이미지를로드하고 색조 색상을 설정하고 싶습니다. 그러나 SVG 이미지를 imageView에 성공적으로로드 한 후 setColorFilter NOT WORKING.

나는 아래의 코드로 글라이드를 사용하여 다른 이미지 뷰에 SVG 이미지를로드 할 수 :

// 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); 

지금, 내가 mageView2 (후 성공적으로 imageView2에 SVG 이미지를로드)의 색조 색상을 변경하려면, 나는 다음 시도 코드 만 를 작동하지 않습니다 :

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

이 도와주세요! 너무 많은 감사

답변

0

당신은 어쩌면이 유용 할 수있는 아이콘을 사용하는 경우

다른
android:tint="@color/colorAccent" 

당신이 클래스 수정 시도 할 수 있습니다 :

ImageView imageViewIcon = (ImageView) listItem.findViewById(R.id.imageViewIcon); 
imageViewIcon.setColorFilter(getContext().getResources().getColor(R.color.blue)); 
이 스레드에서

대한 추가 정보는 그것이 가능을 안드로이드에서 xml에서 머티리얼 디자인 아이콘의 색을 바꾸려면? Material design icon colour from xml

+0

이 솔루션 WORKING를 사용하여 ImageView 및 교체 사용할 수 있습니다. 그러나 글라이드를 사용하여 imageView에 SVG 이미지를로드하면 작동하지 않습니다. 도와주세요! – Sonzero

2

당신은 내가 이미지 뷰에 PNG 이미지 형태로 드로어 블을로드 할 때 android.support.v7.widget.AppCompatImageView

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

ImageView로 PNG 이미지 형식 drawable을로드하고 코드를 사용하여 색조 색을 설정하려고했습니다. ⇒ 작동합니다. 그러나 글라이드를 사용하여 SVG 이미지를 imageView로 성공적으로로드 한 후에는 setColorFilter가 작동하지 않습니다. 다른 해결책? – Sonzero

+0

무슨 뜻이야?. 당신은 다른 답변에 대해서도 똑같이 말합니다. 그럼 어떤 답이 효과가 있습니까? –

+0

ImageViewt에 PNG 이미지 형식 드로어 블을로드 할 때 세 가지 방법 모두 작동합니다. 그러나 Glide를 사용하여 imageView에 SVG 이미지를로드하면 세 가지 방법 모두 작동하지 않습니다. 도와주세요 ! – Sonzero