Muy bien, tuve un juego rápido con esto y noté que su problema de los círculos desaparecía. Sin que describa exactamente lo que ha intentado con, supongo que aún no ha intentado configurar el filtro de color en el Drawable
. (a diferencia del ImageView
, que solo parece funcionar con BitmapDrawable
s).
las siguientes afirmaciones funcionan perfectamente bien para un xml-declarada ShapeDrawable
con el blanco como color inicial:
ImageView redCircle = (ImageView) findViewById(R.id.circle_red_imageview);
ImageView greenCircle = (ImageView) findViewById(R.id.circle_green_imageview);
ImageView blueCircle = (ImageView) findViewById(R.id.circle_blue_imageview);
// we can create the color values in different ways:
redCircle.getDrawable().setColorFilter(Color.RED, PorterDuff.Mode.MULTIPLY);
greenCircle.getDrawable().setColorFilter(0xff00ff00, PorterDuff.Mode.MULTIPLY);
blueCircle.getDrawable().setColorFilter(getResources().getColor(R.color.blue), PorterDuff.Mode.MULTIPLY);
El ShapeDrawable
esté completo: (I ajustar el tamaño de la ImageView
, véase más adelante)
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" >
<solid android:color="@android:color/white" />
</shape>
Y una de las ImageView
s como ejemplo:
<ImageView
android:id="@+id/circle_red_imageview"
android:layout_width="40dp"
android:layout_height="40dp"
android:padding="5dp"
android:src="@drawable/circle_white" />
resultado visual:
Puede encontrar [este Q & A relacionado] (http://stackoverflow.com/questions/4354939/understanding-the-use-of-colormatrix-and-colormatrixcolorfilter-to-modify-a-draw) interesante. –
Lo sentimos, pero no pude encontrar nada relacionado con esta pregunta. – aplavin
No estoy seguro de cómo no se puede encontrar la respuesta aceptada relacionada ... De todos modos, aquí hay otro tema similar: [enlace] (http://stackoverflow.com/q/1309629/1029225). Como se sugiere allí, intente: 'imgView.setColorFilter (0xff00ffff, PorterDuff.Mode.MULTIPLY);'. Si eso no se adapta a sus necesidades, también se propone una solución más sofisticada. –