ImageView
ビットマップが境界に収まるように、非常に長い間ビットマップを設定しようとしてきました。
経由では機能しませんscaleType: fitXY
。ビットマップ イメージのサイズが よりも小さいImageView
(100X100 ピクセルで保存)。ビットマップ イメージをImageView
.
ここにいくつかのコードがあります:
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/imageView"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:src="@drawable/locked_image"
android:scaleType="fitXY"
/>
を設定するコードは次のとおりですImageView
(テストのためにさまざまな場所に設定してscaleType
います):
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final ImageView imageView;
if (convertView == null) {
imageView = (ImageView) getLayoutInflater().inflate(R.layout.item_grid_image, parent, false);
imageView.setScaleType(ScaleType.FIT_XY);
} else {
imageView = (ImageView) convertView;
imageView.setScaleType(ScaleType.FIT_XY);
}
imageLoader.displayImage(imagesIds[position], imageView, options);
imageView.setScaleType(ScaleType.FIT_XY);
return imageView;
}
外観は次のとおりです。
ご覧のとおり、高さImageView
は問題ありませんが、幅は同じにしたいです。アクティビティからビットマップ イメージにアクセスできないため、ビットマップのサイズ変更を依頼しないでください。なぜそれが本来のように機能しないのか、私には本当にわかりません。
編集:
問題をより理解しやすくするためだけに。高さはImageView
デバイスごとに計算されます。端末ごとに異なります。私の幅をImageView
そのまま高さと同じにしたいです。Two-WayGridView
違いがある場合は、ライブラリを使用して画像を表示しています。