5

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違いがある場合は、ライブラリを使用して画像を表示しています。

4

4 に答える 4

10

を使用してscaleTypeも、ImageView のサイズは変更されません。ビットマップを ImageView のサイズ拡大するだけです (スクリーンショットから判断すると、これは非常にうまくいっています)。

正方形の ImageView を作成したい場合は、この質問を見てみてください。

また、 TwoWayGridViewライブラリを使用している理由がわかりません。行/列の数を指定できるように特別に設計されており、アイテムが収まるように引き伸ばされます。正方形にしたいので、これはあなたが望むものとは正反対のようです。onMeasure()リンクされた質問/回答に示されているように、各項目をオーバーライドすれば、通常の GridView が機能します。

于 2013-07-29T17:35:16.077 に答える
1

src プロパティを使用する代わりに、imageView の background プロパティを使用します。ビットマップが引き伸ばされます。

<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:background="@drawable/locked_image"
android:scaleType="fitXY"
/>
于 2013-07-29T17:33:31.377 に答える
-2

src を使用する代わりに、fitxy で background を使用します。それはあなたのイメージを引き伸ばします:

android:background="@drawable/locked_image"
android:scaleType="fitXY"
于 2016-06-14T10:53:33.300 に答える