2

を使用してビットマップをスケーリングするAndroidアプリを作成しています bitmap2 = Bitmap.createScaledBitmap(bmp, 150, 150, true);

この画像は、大画面の携帯電話では十分にきれいに見えます...しかし、小さなサイズの携帯電話で使用すると、バランスが崩れます...誰もそれに対する解決策を知っていますか?

4

2 に答える 2

6

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 に変更する必要がある場合があります。

于 2013-08-09T10:33:09.337 に答える
4

画面の高さと幅を取り、サイズを計算します

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);

要件に応じて計算します。

于 2013-08-09T10:35:05.643 に答える