Ich arbeite an einem Android-Projekt, wo ich eine benutzerdefinierte ListView mit einem Bild auf der linken Seite verwenden.
Ich benutze Genymotion Emulator, der gut funktioniert. Das Bild wird perfekt dargestellt: Screenshot from Genymotion emulatorBild zeigt auf Emulator aber nicht auf echtem Gerät
Allerdings, wenn ich die App auf meinem Gerät (Huawei P8 Lite) verwende, wird nichts gezeigt: Screenshot from device
Ich habe versucht, die App auf meinem Gerät zu debuggen, der Bildpfad vorhanden ist (sonst würde sie die „kein Bild vorhanden“ statt sein) am ist: /storage/emulated/0/Pictures/JPEG_20160415_134349_-350854394.jpg
ich den Android-Gerät Monitor ging und das Bild vorhanden ist, aber auf einem etwas anderen Weg (mnt/shell/statt/storage /, aber ich glaube nicht, dass das das eigentliche Problem ist, oder?)
Ich habe keine "OutOfMemory" -Fehler oder einen anderen Fehler in der StackTrace.
Dies ist der Code verwende ich das Bild zeigen:
if(values.get(position).getImgList().size()==0){
imageView.setImageResource(R.drawable.nopics);
}
else {
//getImg() return the path (string) of the first image in a ArrayList of path
imageView.setImageBitmap(values.get(position).getImg());
}
Ich bin mir ziemlich sicher, dass getImg() ein Bild zurück, wie ich die gleiche Methode verwenden, wenn ich das Bild zu einem Webservice senden. Der Webservice empfängt das Bild korrekt.
Ich habe auch den internen/externen Speicher in meinem Android Manifest lesen/schreiben.
EDIT: Ich habe das Layout-Code vergessen haben:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/icon"
android:layout_width="200px"
android:layout_height="200px"
android:layout_marginLeft="40px"
android:layout_marginRight="10px"
android:layout_marginTop="4px">
</ImageView>
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="70px"
android:layout_marginLeft="10px"
android:text="@+id/label"
android:layout_marginRight="@dimen/activity_horizontal_margin"
android:textSize="48px" >
</TextView>
<ImageButton
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/croixrouge"
android:src="@drawable/croixrouge"
android:layout_alignBottom="@+id/label"
android:layout_marginBottom="50px"
android:layout_alignEnd="@+id/label" />
<ImageButton
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/option"
android:src="@drawable/modif"
android:layout_alignTop="@+id/croixrouge"
android:layout_toStartOf="@+id/croixrouge"
android:layout_marginRight="5px"/>
<ImageButton
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/refresh"
android:src="@drawable/refreshpurple"
android:layout_alignTop="@+id/option"
android:layout_toStartOf="@+id/option"
android:layout_marginRight="5px" />
</RelativeLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10px"
android:id="@+id/sublabel"
android:text="@+id/sublabel"
android:layout_marginRight="@dimen/activity_horizontal_margin"
android:textSize="32px"/>
</LinearLayout>
</LinearLayout>
getImg() Code:
public Bitmap getImg() {
if(imgList.size() !=0) {
Bitmap bmp = BitmapFactory.decodeFile(imgList.get(0));
return bmp;
}
return null;
}
EDIT: Wie kann ich die Bildaufnahme: protected void onActivityResult (int requestCode, int Result, Absicht imageData) { super.onActivityResult (requestCode, resultCode, imageData);
switch (requestCode) {
case Define.ALBUM_REQUEST_CODE:
if (resultCode == RESULT_OK) {
path = imageData.getStringArrayListExtra(Define.INTENT_PATH);
...
}
}
}
Und später:
r.setImgList(path);
Könnte jemand bitte helfen Sie mir zu verstehen, warum das Bild nicht auf einem realen Gerät angezeigt wird?
es nicht vielleicht diese Android passt versuchen: Scaletype = „fitXY“ in Imageview –
Was sind die api Ebenen des Emulators und dem Gerät? – nvi9
Das scaleType-Zeug hat nicht funktioniert, danke aber. Emulator und Gerät sind beide API 21, Gerät läuft auf Android 5.0.1 und Emulator auf 5.0.0 – Nevi