3

ListViewを含むアクティビティがあります。リストは左側にサムネイル、右側にテキストで、連絡先リストとほとんど同じです。
ここに画像の説明を入力してください
サムネイルはSDカードからの絶対パスから読み込まれ、各画像サイズは約5MBです。メモリ不足を回避するために、このチュートリアルでは、拡大縮小されたバージョンの画像のみをロードし、多くのメモリを使用しないクラスを作成しました。

さて、何が問題なのですか?なぜなら、画像のサイズを変更したい幅と高さ(px)を渡す必要があるのですが、デバイスが異なれば、絶対値の設定に問題が発生します。だから、私はビューを引数に渡してみて、クラスでそれを操作して幅と高さを取得しました。わかりました、しかしそれはうまくいきませんでした、サムネイルがはっきりと描かれていないので(私は推測します)、私は彼のサイズ値をとることができません。

lisviewアダプタからgetView()メソッド内のサイズを取得するにはどうすればよいですか?

/** short passage of getView() method */
ImageView image = (ImageView) view.findViewById(R.id.image_thumb);
Bitmap bMap = BitmapAdjusted.decodeSampleBitmap("/sdcardpath/", 
            image); // "image" is the view passed by args
image.setImageBitmap(bMap);

ここに問題があります:

public static decodeSimpleBitmap(String path, View view){
    /** unworth previous code */
    int width = view.getWidth(); // always give zero, getMeasuredWidth() too
    int height = view.getHeight(); // always give zero
    // options is BitmapFactory.Options class, declared before that do the magic
    options.inSampleSize = calculateInSampleSize(options, width, height);

}

ありがとう!

4

0 に答える 0