0

より大きな (500x500) ビットマップ イメージの高品質のアンチエイリアス処理された小さなバージョンを取得するために使用されるコードをいくつか取得して変更しました。どうやら、マトリックスを使用すると、createScaledBitmap() を使用するよりも高品質になります。結果はあまり印象的ではありませんでした..おそらく私は間違いを犯したのではないかと思いました.特に、オプションが実際に採用されているかどうかについては確信が持てませんでした. そこで、劇的な品質低下inSampleSize = 1;inSampleSize = 50;期待して を変更しましたが、変化はありませんでした。だから今、私はオプションが無視されているのではないかと疑っています。このコードは救出できますか?

bitmap私はおそらく、引数と引数を取る createBitmap のいくつかのバージョンを見つけたいと思っていましたoptionsが、何も見つかりませんでした。

BitmapFactory.Options options = new BitmapFactory.Options();

options.inPreferQualityOverSpeed = true;
options.inJustDecodeBounds = false;
options.inDither = false;
options.inSampleSize = 1;
options.inScaled = false;
options.inPreferredConfig = Bitmap.Config.ARGB_8888;

Bitmap bmpSource = BitmapFactory.decodeResource(getResources(), R.drawable.bigicon);

Matrix matrix = new Matrix();
matrix.postScale(.1f,.1f);
Bitmap scaledBitmap = Bitmap.createBitmap(bmpSource, 0, 0, bmpSource.getWidth(), bmpSource.getHeight(), matrix, true);
4

2 に答える 2

5

実際にはパラメータとして提供する必要があります。変化する

Bitmap bmpSource = BitmapFactory.decodeResource(getResources(), R.drawable.bigicon);

Bitmap bmpSource = BitmapFactory.decodeResource(getResources(), R.drawable.bigicon, options);

ここにドキュメント

于 2013-10-18T15:59:15.803 に答える