我有一个像这样的ListView行的Listview(ListView元素):
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/ivThumbnail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="6dp"
android:layout_marginTop="6dp"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/tvDetailsArtist"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/ivThumbnail"
android:layout_marginLeft="20dp"
android:layout_toRightOf="@+id/ivThumbnail"
android:maxLines="1"
android:paddingLeft="1dp"
android:text="placeholder"
android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>
在我的ListView ArrayAdapter上的getView方法我有以下(缩短):
// Check if ThumbnailFile exists
File fThumbnail = new File(
Environment.getExternalStorageDirectory()
+ "/folder/"), elements.get(position)
.getThumbnailFileName());
if (fThumbnail.exists()) {
ivThumbnail.setImageURI(Uri.parse(
Environment.getExternalStorageDirectory()
+ "/folder/")
+ elements.get(position).getThumbnailFileName()));
} else {
Bitmap bm = BitmapFactory.decodeResource(context.getResources(), R.raw.no_thumbnail);
ivThumbnail.setImageResource(R.raw.no_thumbnail);
}
问题: res / raw 中的* no_thumbnail.png *(也在res / drawable等中测试)与getThumbnailFileName()的缩略图大小相同。但在ImageView中,它们显示为缩略图。 出于测试目的,我已将* no_thumbnail.png *放到SD卡上,在那里它像其他缩略图一样缩放。
答案 0 :(得分:0)
首先你打电话给getThumbnailFileName()
所以它从源头获得了预先缩放的图像,但是在else语句中你是从源头调用图像,然后它是基于缩放的在ImageView
上,因此修改对getFileName()
而非getThumbnailFileName()
的通话应该有帮助