我有这个列表视图,即使位图的大小大于屏幕大小,其中的图像视图也不适合屏幕宽度。这是我得到的结果:
(由于垃圾邮件政策,我无法在此处发布我的屏幕截图。请点击以下链接查看屏幕截图。) http://www.sundancepost.com/ivue/screen/screen1.jpg
如上面屏幕中的红色框所示,列表不符合屏幕宽度。
以下是我想要的结果:
http://www.sundancepost.com/ivue/screen/screen2.jpg
这是我的布局代码。
featured_listrow.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:id="@+id/banner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/ampersand_banner"/>
</RelativeLayout>
featured_list:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:smoothScrollbar="true"
>
</ListView>
</LinearLayout>
我相信我已经为两个布局文件正确设置了layout_width和layout_height。我认为这与运行时的 android:adjustViewBounds 设置有关。有人可以帮帮我吗?
答案 0 :(得分:2)
我终于发现了什么问题。图像的缩放发生在http://www.androidhive.info/2012/02/android-custom-listview-with-image-and-text/
中的 ImageLoader.class 中所以,当我注释掉代码的缩放部分时,它都恢复正常。
这是代码:
private Bitmap decodeFile(File f){
try {
//decode image size
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeStream(new FileInputStream(f),null,o);
//Find the correct scale value. It should be the power of 2.
// final int REQUIRED_SIZE=100;
// int width_tmp=o.outWidth, height_tmp=o.outHeight;
int scale=1;
//while(true){
//if(width_tmp/2<REQUIRED_SIZE || height_tmp/2<REQUIRED_SIZE)
//break;
//width_tmp/=2;
//height_tmp/=2;
//scale*=2;
//}
//decode with inSampleSize
BitmapFactory.Options o2 = new BitmapFactory.Options();
o2.inSampleSize=scale;
return BitmapFactory.decodeStream(new FileInputStream(f), null, o2);
} catch (FileNotFoundException e) {}
return null;
}
答案 1 :(得分:1)
您可以使用
在图像视图中设置图像 1)android:scaleType="fitXY"
或
2)android:scaleType="centerCrop"
在图片视图中使用任何一个。它给了我完美的结果,因为我想要。
答案 2 :(得分:0)
我认为唯一可以帮助的是使用其他程序调整图像大小。问题是,在xml或代码中设置图像大小时,图像无法以图像方式进行水平或垂直方向裁剪。