web-dev-qa-db-fra.com

Comment définir l'image dans imageview dans Android?

Je souhaite afficher une image dans imageview afin de créer un dossier - drawable dans res et d'y placer mon image Quelque chose comme Apple.png. Ensuite, j'utilise ce code:

ImageView iv= (ImageView)findViewById(R.id.img_selected_image);
String path = getApplication().getFilesDir().getAbsolutePath();
InputStream is = new FileInputStream(path + "/Apple.png");
Drawable icon = new BitmapDrawable(is);
Log.i("Fnord", "width="+icon.getIntrinsicWidth()+
     " height="+icon.getIntrinsicHeight());
iv.setImageDrawable(icon);

Mais quand je le lance, il dit qu'il n'y a pas d'image par Apple.png nom dans data/data/package-name/files. Je pense que j'ai mis mon image dans un endroit inapproprié. Où devrais-je mettre mon image?

16
shadi

vous pouvez directement donner le nom de l'image dans votre setimage sous la forme iv.setImageResource(R.drawable.Apple); qui devrait l'être. 

57
Anuj

utilisez le code suivant,

    iv.setImageResource(getResources().getIdentifier("Apple", "drawable", getPackageName()));
7
Mehul Joisar

Au lieu de définir des ressources exploitables par le biais de code dans votre classe d'activité, vous pouvez également définir une présentation XML:

Le code est le suivant:

<ImageView
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:src="@drawable/Apple" />
5
Rajendra
// take variable of imageview

private ImageView mImageView;

//bind imageview with your xml's id

mImageView = (ImageView)findViewById(R.id.mImageView);

//set resource for imageview

mImageView.setImageResource(R.drawable.your_image_name);
3
Hiren Patel

Les images que vous mettez en rés/dessinables sont gérées par Android. Vous n'avez pas besoin d'obtenir l'image comme vous l'avez fait. dans votre cas, vous pouvez simplement appeler iv.setImageRessource(R.drawable.Apple)

pour obtenir uniquement l'image (sans l'ajouter directement à ImageView), vous pouvez appeler Context.getRessources().getDrawable(R.drawable.Apple) pour obtenir l'image. 

2
Sprigg
        ImageView iv= (ImageView)findViewById(R.id.img_selected_image);
        public static int getDrawable(Context context, String name)//method to get id
        {
         Assert.assertNotNull(context);
         Assert.assertNotNull(name);
        return context.getResources().getIdentifier(name,    //return id
            "your drawable", context.getPackageName());
        }
        image.setImageResource(int Id);//set id using this method
1
Raghunandan

si vous voulez définir un objet bitmap à l'image, voici deux lignes

Bitmap bitmap=BitmapFactory.decodeResource(getResources(),R.drawable.sample_drawable_image);
image.setImageBitmap(bitmap);
1
Priyatam

Si vous avez créé ImageView à partir de Java Class

ImageView img = new ImageView(this);

//Here we are setting the image in image view
img.setImageResource(R.drawable.my_image);
1
Lakshay Sharma

1> Vous pouvez ajouter une image à partir de la présentation elle-même:

<ImageView
                Android:id="@+id/iv_your_image"
                Android:layout_width="wrap_content"
                Android:layout_height="25dp"
                Android:background="@mipmap/your_image"
                Android:padding="2dp" />

OU

2> Par programme en classe Java:

ImageView ivYouImage= (ImageView)findViewById(R.id.iv_your_image);
        ivYouImage.setImageResource(R.mipmap.ic_changeImage);

OUpour les fragments:

View rowView= inflater.inflate(R.layout.your_layout, null, true);

ImageView ivYouImage= (ImageView) rowView.findViewById(R.id.iv_your_image);
        ivYouImage.setImageResource(R.mipmap.ic_changeImage);
0
Tarit Ray