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 に答える