1

Android 1.6 に対してビルドするようにビルドを更新したところ、高密度画面でビットマップが縮小されました。私はこの動作を望んでいません。私はこれを試しました:

http://blog.tomgibara.com/post/190539066/android-unscaled-bitmaps

ただし、画像はまだスケーリングされています。つまり、特定の高さと幅に設定しない限りです。私が使用するwrap_contentと、それらは縮小されます。

次のようなドローアブルを作成するために、スケーリングされていないビットマップローダーを使用する画像ローダーがあります。

Bitmap bm = UnscaledBitmapLoader.loadFromResource(imageBufferInputStream);
drawable = new BitmapDrawable(bm);

後で次のように ImageView に割り当てます。

imageView.setImageDrawable( copyBitmapDrawable( (BitmapDrawable) drawable) );
4

4 に答える 4

3

リソースからロードするときにイメージをスケーリングしないようにするには (BitmapFactory.decodeResource などを使用)、通常の drawable や drawable-ldpi などではなく、res/drawable-nodpi に配置する必要があります。

于 2010-11-04T04:50:24.513 に答える
2

使用する

new BitmapDrawable(this.getResources(), bmp); 

それ以外の

 new BitmapDrawable(bmp);

問題を解決する必要があります。

于 2011-08-23T09:48:58.453 に答える
1

ビットマップを a でラップすることDrawableが問題です。はDrawableをスケールしBitmapます。を使用する代わりに、 を直接使用してDrawableに割り当てます。BitmapImageViewimageView.setImageBitmap(Bitmap)

于 2010-11-04T01:10:57.837 に答える
0

ImageView.ScaleTypeを使用します。定数はCENTERスケーリングを実行しないので、それがあなたが探しているものだと思います。

ちなみに、サイズの単位としてピクセルやディップを使用していますか?ディップ(密度に依存しないピクセル)を使用することは、複数の解像度での表示を標準化する手段です。ここにいくつかのヒントがあります。

于 2010-11-03T22:42:10.783 に答える