Lorsque je change l'image par programme, il affiche une nouvelle image au-dessus de l'ancienne image qui est définie à l'origine dans le fichier de mise en page?
Voici un extrait de mon fichier de mise en page:
<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>
Et le code qui définit l'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'est-ce que je rate?
image.setImageResource(R.drawable.icon_dot1);
setBackgroundResource()
:( n'a pas supprimé l'image existante avant d'utiliser la nouvelle image .. donc j'ai eu deux images en collision là-bas. Cela asetImageResource()
fonctionné :). Pourtant ... le message m'a mis sur la bonne voie - merci pour les deux réponses!setImageResource
?ImageView.setImageResource(R.drawable.image);
travaillé pour moiUtilisation en XML:
Utilisation de la source:
la source
Réponse courte
Copiez simplement une image dans votre
res/drawable
dossier et utilisezDétails
La variété des réponses peut semer la confusion. Nous avons
setBackgroundResource()
setBackgroundDrawable()
setBackground()
setImageResource()
setImageDrawable()
setImageBitmap()
Les méthodes avec
Background
dans leur nom appartiennent toutes à laView
classe, pasImageView
spécifiquement. Mais depuisImageView
hérite deView
vous pouvez aussi les utiliser. Les méthodes avecImage
dans leur nom appartiennent spécifiquement àImageView
.Les
View
méthodes font toutes la même chose les unes que les autres (bien qu'ellessetBackgroundDrawable()
soient obsolètes), nous allons donc nous concentrer uniquement sursetBackgroundResource()
. De même, lesImageView
méthodes font toutes la même chose, nous allons donc nous concentrer sursetImageResource()
. La seule différence entre les méthodes est le type de paramètre que vous transmettez.Installer
Voici un
FrameLayout
qui contient un fichierImageView
. LeImageView
premier ne contient aucune image. (J'ai seulement ajouté leFrameLayout
pour pouvoir mettre une bordure autour. De cette façon, vous pouvez voir le bord duImageView
.)Ci-dessous, nous comparerons les différentes méthodes.
setImageResource ()
Si vous utilisez ImageView
setImageResource()
, l'image conserve son rapport hauteur / largeur et est redimensionnée pour s'adapter. Voici deux exemples d'images différents.imageView.setImageResource(R.drawable.sky);
imageView.setImageResource(R.drawable.balloons);
setBackgroundResource ()
L'utilisation de View
setBackgroundResource()
, en revanche, entraîne l'étirement de la ressource image pour remplir la vue.imageView.setBackgroundResource(R.drawable.sky);
imageView.setBackgroundResource(R.drawable.balloons);
Tous les deux
L'image d'arrière-plan de la vue et l'image de l'ImageView sont dessinées séparément, vous pouvez donc les définir toutes les deux.
la source
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.
Je crois que ceci vous aidera
la source
Dans votre XML pour la vue d'image, où vous avez
android:background="@drawable/thumbs_down
changé cela enandroid:src="@drawable/thumbs_down"
Actuellement, il place cette image comme arrière-plan de la vue et non l'image réelle qu'elle contient.
la source
Dans la conception XML
Image dessinable via code
Image du serveur
la source
Vous pouvez utiliser
ou en java java
la source