Android:Android 1.6+が画像のスケーリングを停止する方法
質問
Android 1.6に対してビルドするためにビルドを更新しましたが、これでビットマップは高密度スクリーンで拡大されています。私はこの動作を望んでいません。私はこれを試しました:
http://blog.tomgibara.com/post/190539066/android-unscaled-bitmaps
しかし、画像はまだスケーリングされています。つまり、特定の高さと幅に設定しない限りです。使用する場合 wrap_content
それらは縮小されています。
SOのような描画可能なものを作成するために、Unscaled Bitmap Loaderを使用して画像ローダーがあります。
Bitmap bm = UnscaledBitmapLoader.loadFromResource(imageBufferInputStream);
drawable = new BitmapDrawable(bm);
後でImageViewに割り当てます。
imageView.setImageDrawable( copyBitmapDrawable( (BitmapDrawable) drawable) );
解決 3
aでビットマップをラッピングします Drawable
問題です。 Drawable
スケール Bitmap
. 。使用する代わりに Drawable
, 、を割り当てます Bitmap
に ImageView
直接使用します imageView.setImageBitmap(Bitmap)
.
他のヒント
リソース(bitmapfactory.decoderesourceなど)からロードするときに画像をスケーリングしないようにするには、通常の描画可能、描画可能なldpiなどの代わりに、res/drawable-nodpiに配置する必要があります。
使用
new BitmapDrawable(this.getResources(), bmp);
それ以外の
new BitmapDrawable(bmp);
問題を解決する必要があります。
使用する ImageView.scaletype. 。 CENTER
定数はスケーリングをしないので、それがあなたが探しているものだと思います。
ちなみに、サイズユニットとしてピクセルまたはディップを使用していますか? DIPS(密度非依存ピクセル)を使用することは、複数の解像度で表示を標準化する手段です。いくつかのヒントが見つかります ここ.