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() への呼び出しを削除するように編集されました。