Ответ 1
вы можете напрямую указать имя изображения в вашем файле в формате iv.setImageResource(R.drawable.apple);
, которое должно быть таким.
Я хочу показать изображение в представлении изображения, поэтому я создал папку - drawable
в res
и разместил там свое изображение. Что-то вроде apple.png
. Затем я использую этот код:
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);
Но когда я запустил его, он сказал, что в data/data/package-name/files
нет изображения с именем apple.png
. Думаю, я поставил свой образ на неприемлемое место. Где я должен поставить свое изображение?
вы можете напрямую указать имя изображения в вашем файле в формате iv.setImageResource(R.drawable.apple);
, которое должно быть таким.
используйте следующий код,
iv.setImageResource(getResources().getIdentifier("apple", "drawable", getPackageName()));
Вместо того, чтобы устанавливать ресурс с помощью кода в вашем классе активности, вы также можете установить в XML-макете:
Код выглядит следующим образом:
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/apple" />
// take variable of imageview
private ImageView mImageView;
//bind imageview with your xml id
mImageView = (ImageView)findViewById(R.id.mImageView);
//set resource for imageview
mImageView.setImageResource(R.drawable.your_image_name);
Изображения, помещенные в res/drawable, обрабатываются Android. Вам не нужно получать изображение так, как вы делали.
в вашем случае вы можете просто вызвать iv.setImageRessource(R.drawable.apple)
чтобы просто получить изображение (и не добавляя его непосредственно в ImageView), вы можете вызвать Context.getRessources().getDrawable(R.drawable.apple)
, чтобы получить изображение
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
Если вы создали ImageView
из класса Java
ImageView img = new ImageView(this);
//Here we are setting the image in image view
img.setImageResource(R.drawable.my_image);
Если вы хотите установить объект растрового изображения в изображение, просто две строки `
Bitmap bitmap=BitmapFactory.decodeResource(getResources(),R.drawable.sample_drawable_image);
image.setImageBitmap(bitmap);
1> Вы можете добавить изображение из самого макета:
<ImageView
android:id="@+id/iv_your_image"
android:layout_width="wrap_content"
android:layout_height="25dp"
android:background="@mipmap/your_image"
android:padding="2dp" />
ИЛИ ЖЕ
2> Программно в классе Java:
ImageView ivYouImage= (ImageView)findViewById(R.id.iv_your_image);
ivYouImage.setImageResource(R.mipmap.ic_changeImage);
ИЛИ для фрагментов:
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);
установить изображение в режиме просмотра изображений
imageView.setImageResource(R.drawable.myImage);