を使用してビットマップをスケーリングするAndroidアプリを作成しています
bitmap2 = Bitmap.createScaledBitmap(bmp, 150, 150, true);
この画像は、大画面の携帯電話では十分にきれいに見えます...しかし、小さなサイズの携帯電話で使用すると、バランスが崩れます...誰もそれに対する解決策を知っていますか?
を使用してビットマップをスケーリングするAndroidアプリを作成しています
bitmap2 = Bitmap.createScaledBitmap(bmp, 150, 150, true);
この画像は、大画面の携帯電話では十分にきれいに見えます...しかし、小さなサイズの携帯電話で使用すると、バランスが崩れます...誰もそれに対する解決策を知っていますか?
XML の場合と同様に、画像サイズを dp で指定する必要があります。dp からピクセルへの変換を行うには、次のようなものを使用できます。
float ht_px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, ht, getResources().getDisplayMetrics());
float wt_px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, wt, getResources().getDisplayMetrics());
あなたの特定のケースの使用のために:
float ht_px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 150, getResources().getDisplayMetrics());
float wt_px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 150, getResources().getDisplayMetrics());
ビットマップを ht_px と wt_px でスケーリングします。150 を 75 に変更する必要がある場合があります。
画面の高さと幅を取り、サイズを計算します
DisplayMetrics display = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(display);
int screenWidth = display.widthPixels;
int screenHeight = display.heightPixels;
ビットマップを画面の半分に表示したい場合は、
bitmap2 = Bitmap.createScaledBitmap(bmp, screenWidth/2, screenHeight/2, true);
要件に応じて計算します。