0

4 列と n 行の GridView があります。各セルは単なる ImageView です。私のカスタム アダプターの getView() コードは次のようになります。

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imageView;
    if (convertView == null) {  // if it's not recycled, initialize some attributes
        imageView = new ImageView(mContext);
    } else {
        imageView = (ImageView) convertView;
    }
    imageView.setLayoutParams(new GridView.LayoutParams(100, 100));
    imageView.setScaleType(ImageView.ScaleType.FIT_XY);
    imageView.setPadding(1, 1, 1, 1);
    //imageView.setAdjustViewBounds(true);

    if(imageLoader != null) {
        String url = randomImage();
        imageView.setContentDescription(url);
        imageLoader.DisplayImage(url, imageView);
    }
    return imageView;
}

imageLoader はランダムな URL を選択し、バックグラウンドで取得し、それに応じて ImageView を更新します。それはうまく機能し、ダンディです。問題は、結果の画像が FIT_XY ではなく FIT_START のスケール タイプを使用しているように見えることです。これを明示的に FIT_XY に設定していますが、imageView のドローアブルを設定するコード内で再度設定することもできます...それでも FIT_XY ではなく、困惑しています。アイデア?

setAdjustViewBounds() への呼び出しを削除するように編集されました。

4

1 に答える 1