3

我正在使用懒惰列表项目开发图书阅读器这里是链接

问题:我得到了这种延迟列表 小页面的高度和模糊的图像,很难阅读。

在此处输入图像描述

我想要这个: 它应该看起来很清晰(不是模糊的)并且整页的高度都像这样。

在此处输入图像描述

我知道: 惰性列表加载位图的样本大小。

  • 我怎样才能获得大约 600X921 的全分辨率图像。

我试过这个但没有帮助main.xml

 <ListView
    android:id="@+id/list"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent" />

和这个item.xml

<ImageView
    android:id="@+id/image"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:scaleType="matrix"
    android:src="@drawable/stub" />
4

1 回答 1

6

我相信,您正在寻找的解决方案就在这里(如果我错了,请纠正):

//Find the correct scale value. It should be the power of 2.
final int REQUIRED_SIZE=70;
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;
}

这是从第 99 行到第 108 行:https ://github.com/thest1/LazyList/blob/master/src/com/fedorvlasov/lazylist/ImageLoader.java 。我正在链接它,以便您可以从源代码中检查代码并与您的代码进行比较。

您需要在此处更改此位:final int REQUIRED_SIZE=70。请注意,此数字需要 2 的。使用默认值70,您将获得小图像,当用于需要显示更大图片的应用程序时,它们看起来会失真。玩弄它,直到您对结果感到满意为止。

我个人使用的价值final int REQUIRED_SIZE=512没有任何问题。

这应该为您解决问题。

于 2013-01-31T08:34:53.373 回答