17 Ekim 2014 Cuma

Drawable'ın üzerine tint uygulamak (multiply)

Hazırladığım bir uygulamada ImageView üzerindeki ikonun beyaz ama arkaplan olarak kullandığım drawable'ın dinamik bir renk olması gerekti. İkonun beyaz olması sorununu imageView'ın setColorFilter methodunu çağırarak beyaz renk verdim, o tamam. Ama drawable olarak bir arkaplanı setBackgroundDrawable çağırarak veriyordum. Araya girip renk değiştirmem lazımdı. Bitmap'ler setColorFilter desteklemiyor ama şükür ki Drawable'lar destekliyor. Drawable'ı elimle okudum :

Drawable drawable = getResources().getDrawable(R.drawable.checkin_category_button_background);

daha sonra da color filter'ı multiply modunda uygulamadım.

drawable.setColorFilter(color, Mode.MULTIPLY);

Böylece istediğim renkte dinamik background drawable'ı elde ettim.

Umarım işinize yarar, sevgiler.