setImageBitmap n'a aucun effet visible
J'ai un tableau d'octets qui contient une image récupérée sur le net. Je suis paresseusement à les charger sur mon INTERFACE de l'activité (ou j'essaie d'au moins 😀 ) à l'aide de Bitmapfactory, BitmapDrawable et setImageDrawable. voici mon code:
RelativeLayout r =(RelativeLayout) adap.getGroupView(Integer.parseInt(groupPos), false, null, null);
ImageView iv = (ImageView) r.findViewById(R.id.imgGruppo);
Log.w("",""+raw_img.length);
Bitmap bm = BitmapFactory.decodeByteArray(raw_img, 0, raw_img.length);
Drawable drawable = new BitmapDrawable(bm);
Log.i("","pre setimage");
iv.setImageDrawable(drawable);
//added for testing only, with no effects.
//((ELA) Activity_Titoli_2.this.getExpandableListAdapter()).notifyDataSetChanged();
//ELA is my expandable list adapter
Log.i("","post setimage"+bm.getRowBytes()); //just to see that i have actual data in raw_img and such
voici le XML impliqués
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayoutTitoli2_gruppo"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textNomeGruppo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="Large Text"
android:textColor="#FF0000"
android:padding="14dp"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textNoteGruppo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textNomeGruppo"
android:paddingLeft="14dp"
android:paddingRight="14dp"
android:paddingBottom="7dp"
android:text="Small Text"
android:textAppearance="?android:attr/textAppearanceSmall" />
<ImageView
android:id="@+id/imgGruppo"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentRight="true"
android:src="@drawable/icon"
/>
</RelativeLayout>
J'ai ajouté "android:src..." juste pour vérifier si l'imageview est visible, et il est. Le seul problème est que je ne peux pas le changer!
J'ai essayé setImageBitmap, en utilisant uniquement l'image bitmap que j'ai créé, j'ai essayé setimageDrawable la création d'un BitmapDrawable, mais aucun effet du tout. pas d'erreur, rien.
S'il vous plaît, où est l'erreur? merci
source d'informationauteur STT LCU
Vous devez vous connecter pour publier un commentaire.
Ma conjecture est que vous n'êtes pas à le faire dans le fil de droite. Vous pouvez tester cela en appelant ce code, puis la rotation de l'écran (ou en ouvrant le clavier physique, si vous avez un de ces téléphones). Ce sera la cause de l'INTERFACE utilisateur pour se rafraîchir.
De toute façon, quel contexte êtes-vous appeler? Thread d'arrière-plan? Vous voulez mettre à jour l'INTERFACE utilisateur dans le thread de l'INTERFACE utilisateur, ou vous aurez à appeler quelque chose comme "invalider" sur le point de Vue de l'obtenir pour forcer un nouveau tirage au sort.
C'est un problème de mémoire, vous pouvez le fixer à l'aide de cette méthode en tant que ci-dessous,
Le "inSampleSize" option sera de retour une image plus petite et économiser de la mémoire. Vous pouvez les appeler cela de l'ImageView.setImageBitmap
Ci-dessous la solution a fonctionné pour moi. J'ai utilisé Picasa bibliothèque.
Picasa: http://square.github.io/picasso/
Appel ci-dessous la fonction pour définir l'image bitmap dans ImageView