Cómo cambiar el color de la forma establecida en la vista de imagen

Ahora el problema comienza con sólo fijar el color de una forma. He creado una forma de rectángulo en drawable y establecerlo a ImageView como este

 <LinearLayout android:layout_width="0dp" android:layout_height="fill_parent" android:orientation="vertical" android:layout_weight="0.15" android:layout_marginRight="10dp" android:gravity="center_vertical"> <ImageView android:id="@+id/iv_priority" android:src="@drawable/case_priority" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout> 

EDITAR

Mi caso_prioridad.xml

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#009600" /> <size android:width="30dp" android:height="30dp" /> </shape> 

Ahora necesito cambiar el color de esta forma. De hecho, este color viene del servicio web, y necesito cambiarlo. Así que mi pregunta es: ¿Cómo podemos cambiar el color de esta forma mediante programación. Y fijarla a la vista de la imagen. He pasado por algunos ejemplos en stackoverflow pero no puedo cambiarlo a la vista de la imagen. ¡Ayuda por favor !!!! Gracias por adelantado.

EDITAR:

Puede ser que no estaba claro en mi pregunta, Tan Sólo un refinamiento a la pregunta. En realidad, tengo un ImageView donde establezco una fuente que es en realidad un dibujable. Por defecto es verde como en mi código mostrado arriba. Ahora el servicio web devuelve el color de esta vista de imagen que debe cambiarse en consecuencia, por lo que no puedo cambiarlo desde xml durante el tiempo de ejecución, así que necesito cambiarlo desde el archivo java. Puesto que estoy usando la forma y la opinión de la imagen, .setBackground () no ayudará mucho aquí. Así que ¿Cuál puede ser la solución probable para esto. Gracias por contestar y disculpen las molestias.

Gracias por todas las respuestas. Me ayudó a llegar a responder.

En mi diseño cambié android:src="" to android:background="@drawable/case_priority" Y en mi archivo java n = incluye este código: ->

  Resources res = getResources(); final Drawable drawable = res.getDrawable(R.drawable.case_priority); drawable.setColorFilter(Color.YELLOW, Mode.SRC_ATOP); ImageView img = (ImageView)findViewById(R.id.iv_priority); img.setBackgroundDrawable(drawable); 

Eso es. Espero que alguien.

Echa un vistazo aquí

http://developer.android.com/guide/topics/graphics/2d-graphics.html#shape-drawable .

En lugar de crear la Shape en código puede utilizar inflate para inflar su XML si lo desea.

Añadir a la vista de imagen

 android:background="#152" // or some other color code 

Editar 1: para hacerlo con código haz esto

 ImageView.setBackgroundColor(Color.parseColor("red")); // Or any color code like #000 , #987 

Editar 2:

 ImageView Imgs = (ImageView) findViewById(R.id.iv_priority); Imgs.setBackgroundColor(Color.parseColor("ColorCode")); 

IimageView.setBackgroundColor ("# 152");

Como la respuesta de Lars Blumberg tampoco quería cambiar el fondo, así que apliqué lo siguiente para codificar mi imagen, ya que no tenía un GradientDrawable:

 Drawable drawable = imageView.getDrawable(); drawable.setColorFilter(Color.CYAN, PorterDuff.Mode.MULTIPLY); 

Todas las soluciones sugieren utilizar el fondo de ImageView. Creo que esta no es la solución deseada. La pregunta ya refleja lo que sería un enfoque intuitivo: Aplicar la forma al atributo src . Con el fin de cambiar el color de la forma programáticamente haría:

 GradientDrawable drawable = (GradientDrawable) priorityImageView.getDrawable(); drawable.setColor(Color.RED); 

Dado que la forma se asigna como en la pregunta original:

 <ImageView android:id="@+id/iv_priority" android:src="@drawable/case_priority" android:layout_width="wrap_content" android:layout_height="wrap_content"/> 

Esto también trae la ventaja de que puede configurar el fondo de ImageView por separado de su contenido.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.