Ich möchte ein Bild in der Bildansicht anzeigen, also habe ich einen Ordner - drawable
in res
erstellt und mein Bild dort abgelegt. So etwas wie Apple.png
. Dann benutze ich diesen 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);
Aber wenn ich es laufen lasse, heißt es, dass es kein Bild von Apple.png
name in data/data/package-name/files
gibt. Ich glaube, ich habe mein Image an einen unpassenden Ort gestellt. Wo soll ich mein Bild einfügen?
sie können den Image-Namen in Ihrem Setimage direkt als iv.setImageResource(R.drawable.Apple);
angeben, das es sein sollte.
verwenden Sie den folgenden Code,
iv.setImageResource(getResources().getIdentifier("Apple", "drawable", getPackageName()));
Anstatt in Ihrer Aktivitätsklasse durch Code Code zu zeichnen, können Sie auch das XML-Layout festlegen:
Code lautet wie folgt:
<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's id
mImageView = (ImageView)findViewById(R.id.mImageView);
//set resource for imageview
mImageView.setImageResource(R.drawable.your_image_name);
Die Bilder, die Sie in res/drawable ablegen, werden von Android verarbeitet. Sie brauchen das Bild nicht so zu machen, wie Sie es getan haben. In Ihrem Fall können Sie einfach iv.setImageRessource(R.drawable.Apple)
anrufen.
um das Bild einfach abzurufen (und nicht direkt zum ImageView hinzuzufügen), können Sie Context.getRessources().getDrawable(R.drawable.Apple)
aufrufen, um das Bild abzurufen
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
wenn Sie ein Bitmap-Objekt für die Bildansicht festlegen möchten, ist dies einfach zweizeilig
Bitmap bitmap=BitmapFactory.decodeResource(getResources(),R.drawable.sample_drawable_image);
image.setImageBitmap(bitmap);
Wenn Sie ImageView
aus der Java-Klasse erstellt haben
ImageView img = new ImageView(this);
//Here we are setting the image in image view
img.setImageResource(R.drawable.my_image);
bild in der Bildansicht einstellen
imageView.setImageResource(R.drawable.myImage);
1> Sie können ein Bild aus dem Layout selbst hinzufügen:
<ImageView
Android:id="@+id/iv_your_image"
Android:layout_width="wrap_content"
Android:layout_height="25dp"
Android:background="@mipmap/your_image"
Android:padding="2dp" />
ODER
2> Programmgesteuert in Java-Klasse:
ImageView ivYouImage= (ImageView)findViewById(R.id.iv_your_image);
ivYouImage.setImageResource(R.mipmap.ic_changeImage);
ODERfür Fragmente:
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);