1

アプリにリストビューがあります。リストアイテムのサイズが異なります。リストアイテムのボタンをクリックすると、その特定のリストアイテムに半透明の画像を表示する必要があります。リストアイテムのサイズが異なるため、イメージビューの高さを固定サイズに設定できませんでした。

一致する親として設定しましたが、問題は、リスト項目の最初の高さしか取得していないことです。つまり、imageview の高さがリスト項目の高さよりも小さいです。この問題を解決するために、イメージビューの高さを親の高さ (リスト項目のレイアウト) として設定しました。これを試した後、上記の問題は修正されましたが、別の問題が発生しました。

リストビューをスクロールすると、新しい問題が発生します。リスト項目のボタンをクリックすると、イメージビューが正しく表示されますが、イメージビューのサイズをスクロールすると変化します。この理由はわかりませんでした。

以下は私のコードです。これは私のアダプタークラスからのものです。

        holder.parentLayout.setTag(R.id.viewPos,Integer.valueOf(position));
        holder.fadeView.setTag(R.id.viewPos, Integer.valueOf(position));

        int height=holder.parentLayout.getMeasuredHeight();
        holder.fadeView.getLayoutParams().height=height;
4

1 に答える 1

0

この方法では、次の方法を使用して画像サイズを変更する必要があります。高さと幅に応じてビットマップのサイズを変更します

public Bitmap getResizedBitmap(Bitmap bm, double newHeight, double newWidth) 
{
        int width = bm.getWidth();
        int height = bm.getHeight();

        float scaleWidth = ((float) newWidth) / width;
        float scaleHeight = ((float) newHeight) / height;

        Matrix matrix = new Matrix();
        matrix.postScale(scaleWidth, scaleHeight);

        Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0, width, height,matrix, false);

        return resizedBitmap;
}

リストビューのイメージビューにビットマップ(resizedBitmap)を設定します

于 2012-10-11T08:05:25.527 に答える