Cuando cambio la imagen mediante programación, ¿muestra una nueva imagen encima de la imagen anterior que se estableció originalmente en el archivo de diseño?
Aquí hay un fragmento de mi archivo de diseño:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="39dp"
android:gravity="center_vertical" >
<ImageView
android:id="@+id/qStatusImage"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_margin="5dp"
android:background="@drawable/thumbs_down"
/>
<TextView
android:id="@+id/grp_child"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textColor="@color/radio_colors"
android:textStyle="normal"
android:background="@color/grey"
/>
</LinearLayout>
Y el código que establece imageView:
@Override
public View getChildView(final int groupPosition, final int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
//Answers
if(answersGroup != null)
answersGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// int index = answersGroup.indexOfChild(findViewById(answersGroup.getCheckedRadioButtonId()));
qImageView = (ImageView) V.findViewById(R.id.qStatusImage);
if(ans ==0 || ans == 5){
// qSV.setImageResource(0);
qImageView.setImageResource(R.drawable.thumbs_up);
}
else
qImageView.setImageResource(R.drawable.thumbs_down);
}
});
¿Qué me estoy perdiendo?
image.setImageResource(R.drawable.icon_dot1);
setBackgroundResource()
:( no eliminó la imagen existente antes de usar la nueva imagen ... así que obtuve dos imágenes colisionando allí. AunquesetImageResource()
funcionó :). Aún así ... la publicación me puso en el camino correcto. ¡Gracias por ambas respuestas!setImageResource
?ImageView.setImageResource(R.drawable.image);
trabajó para míUsar en XML:
Uso de la fuente:
fuente
Respuesta corta
Simplemente copie una imagen en su
res/drawable
carpeta y useDetalles
La variedad de respuestas puede causar cierta confusión. Tenemos
setBackgroundResource()
setBackgroundDrawable()
setBackground()
setImageResource()
setImageDrawable()
setImageBitmap()
Background
Todos los métodos con su nombre pertenecen a laView
clase, noImageView
específicamente. Pero dado queImageView
hereda deView
usted también puede usarlos. Los métodos conImage
su nombre pertenecen específicamente aImageView
.Los
View
métodos, todos ellos hacen lo mismo que la otra (aunquesetBackgroundDrawable()
está en desuso), así que sólo se centran ensetBackgroundResource()
. De manera similar,ImageView
todos los métodos hacen lo mismo, por lo que solo nos centraremos ensetImageResource()
. La única diferencia entre los métodos es el tipo de parámetro que ingresa.Preparar
Aquí hay un
FrameLayout
que contiene unImageView
. ElImageView
inicialmente no tiene ninguna imagen. (Solo agregué elFrameLayout
para poder poner un borde alrededor. De esa manera, puede ver el bordeImageView
).A continuación compararemos los diferentes métodos.
setImageResource ()
Si usa ImageView
setImageResource()
, la imagen mantiene su relación de aspecto y cambia de tamaño para adaptarse. Aquí hay dos ejemplos de imágenes diferentes.imageView.setImageResource(R.drawable.sky);
imageView.setImageResource(R.drawable.balloons);
setBackgroundResource ()
Usando View's
setBackgroundResource()
, por otro lado, hace que el recurso de imagen se estire para llenar la vista.imageView.setBackgroundResource(R.drawable.sky);
imageView.setBackgroundResource(R.drawable.balloons);
Ambos
La imagen de fondo de la vista y la imagen de ImageView se dibujan por separado, por lo que puede configurar ambas.
fuente
setImageResource
:Sets a drawable as the content of this ImageView. This does Bitmap reading and decoding on the UI thread, which can cause a latency hiccup. If that's a concern, consider using setImageDrawable(Drawable) or setImageBitmap(Bitmap) and android.graphics.BitmapFactory instead.
Creo que esto te ayudará
fuente
En su XML para la vista de imagen, donde tiene
android:background="@drawable/thumbs_down
cambiado esto aandroid:src="@drawable/thumbs_down"
Actualmente está colocando esa imagen como fondo de la vista y no como la imagen real en ella.
fuente
En Diseño XML
Imagen dibujable mediante código
Imagen del servidor
fuente
Puedes usar
o en java java
fuente