Android меняет цвет ImageView / Bitmap

Мне нужно найти способ изменить цвет растрового изображения в Android. Мне нужно заменить / изменить цвета овального изображения плавно в моем приложении в зависимости отint значение. Мне нужно что-то вродеmyValue=5 чем изменить цвет моего изображения наRED и еслиmyValue=322 изменить цвет наBLUE, Единственный способ, который я могу сделать, это использовать файл XML, который выглядит следующим образом:

<code><?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" android:padding="10dp">
<!-- you can use any color you want I used here gray color-->
 <solid android:color="#cccccc"/> 
    <corners
     android:bottomRightRadius="10dp"
     android:bottomLeftRadius="10dp"
     android:topLeftRadius="10dp"
     android:topRightRadius="10dp"/>
</shape>
</code>

и после этого, когдаmyValue меняется, чтобы установить мойImageView ресурс изображения. Но таким образом я должен создать 35 различных XML-файлов ... которые я не считаю хорошей идеей.

Так кто-нибудь, кто может предложить лучшее решение, чтобы сделать это?

Ответы на вопрос(5)

Drawable myIcon = getResources().getDrawable( R.drawable.button ); 
ColorFilter filter = new LightingColorFilter( Color.BLACK, Color.BLACK);
myIcon.setColorFilter(filter);
Решение Вопроса

Declare an ImageView with src="@drawable/button" Create a Drawable and set ColorFilter to it and after that use it as src to your declared ImageView like this :

& GT;

Drawable myIcon = getResources().getDrawable( R.drawable.button );
ColorFilter filter = new LightingColorFilter( Color.BLUE, Color.BLUE );
myIcon.setColorFilter(filter);
color.setImageDrawable(myIcon);
 09 дек. 2015 г., 06:17
Можете ли вы также упомянуть, как это сделать в XML, если это возможно?
 09 дек. 2015 г., 06:21
Я нашел его, должен использоватьandroid:tint атрибут дляimageview

ях окончательный цвет был неправильным. Я использую это решение вместо:

Drawable myIcon = getResources().getDrawable(R.drawable.your_image); 
myIcon.setColorFilter(Color.BLUE, PorterDuff.Mode.SRC_ATOP); 
((ImageView)findViewById(R.id.view_to_change)).setImageDrawable(myIcon);
 17 авг. 2015 г., 11:53
Работал ... спасибо за тонну!
 04 янв. 2016 г., 20:58
Спасибо, это работает как шарм :)
 Android-Droid04 мая 2012 г., 15:51
Я видел этот вариант, но не нашел ни одного хорошего примера или объяснения, как его использовать.
 04 мая 2012 г., 15:53
getResources().getDrawable( R.drawable.button );

((ImageView) findViewById(R.id.my_icon))
  .setColorFilter(new LightingColorFilter(Color.BLUE, Color.BLUE));

Ваш ответ на вопрос