7

Androidのimageview内に画像があります。

次のようなコードで scaletype(MATRIX) を使用して画像をスケーリングしています。

                       mtrx.postScale(scale, scale);
                 imageView.setImageMatrix(mtrx);
            imageView.setScaleType(ScaleType.MATRIX);
            imageView.invalidate();

さて、これは ImageView に含まれる画像のサイズを適切に変更しますが、これは素晴らしいことですが、画像を imageview 内の位置 0,0 に再配置してから、imageView 自体のサイズをスケーリングされた画像のサイズに変更する必要があります。

これまでのところ、同じ imageView を再利用しようと思いついたアイデアはすべてうまくいかないようです。または、何か間違ったことをしているだけです。

イメージビューを破棄し、ビットマップのサイズを変更し、スケールで作成された新しいビットマップを含む新しいイメージビューを作成し、ビューをレイアウトに追加するためにこれを達成する唯一の方法はありますか?

私は本当にそれをしたくない..物事と同じように、16メガヒープ制限にぶつかっています。imageView の位置 0,0 に画像を移動するようにマトリックスに指示するにはどうすればよいですか (imageView は、画像を小さくスケーリングした後、最初に scaletype center で作成されますか?そして、次に imageView にどのように伝えますか?スケーリングされた画像と同じ大きさですか?

前もって感謝します。

4

2 に答える 2

8

画像ビューを「Adjust View Bounds」に設定すると、うまくいくようです。

ドキュメントの内容は次のとおりです。

ドローアブルの縦横比を維持するために ImageView の境界を調整する場合は、これを true に設定します。

を使用するandroid:adjustViewBounds="true"か、コード内でを使用して、これを行うことができますimageView.setAdjustViewBounds(true)

于 2011-08-20T17:29:15.320 に答える
1

"Adjust View Bounds" を true に設定し、スケール タイプを "fitXY" に設定し、最後に layout_width と height を調整します。画像のサイズが変更されることがわかります。

于 2013-04-04T17:46:31.360 に答える