In un'applicazione che ho creato ho notato che le ImageViews non sono colorate sui dispositivi che eseguono il nuovo Android Lollipop. Questo è il codice che consente di lavorare correttamente anche su versioni precedenti del sistema operativo:Tinting ImageView non funziona su Android 5.0. Idee come farlo funzionare di nuovo?
<ImageView
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_gravity="bottom|right"
android:contentDescription="@string/descr_background_image"
android:src="@drawable/circle_shape_white_color"
android:tint="@color/intent_circle_green_grey" />
e questa è la drawable che viene caricato nella ImageView:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" >
<gradient android:startColor="@color/white" android:endColor="@color/white"
android:angle="270"/>
</shape>
Ancora una volta, questo funziona correttamente su dispositivi che eseguono JellyBean/Kitkat, ma la tinta non ha alcun effetto sui dispositivi che eseguono Lollipop. Qualche idea su come aggiustarlo? È un bug nel sistema operativo o dovrei iniziare a colorare l'immagine in modo diverso?
Errore del sistema operativo che è stato corretto per una versione futura. L'attributo tinta di ImageView è stato aggiornato per utilizzare Drawable.setTint() piuttosto che Drawable.setColorFilter(), ma GradientDrawable non supporta setTint(). Non c'è davvero una buona soluzione per questo da XML, ma è possibile chiamare setColorFilter() dal codice. – alanv
Fantastico, è bello sapere che te ne sei già occupato! Grazie per la risposta :) –