Bitmap.createBitmap(int width、int height、Bitmap.Config config)メソッドは単に高さと幅を指定します。これらが実際のピクセルかdpピクセルかはわかりません。ビットマップを作成するときに幅と高さに密度に依存しないピクセルを使用する
私の質問:
1)は、画素DPこれらの値はありますか? 2.)そうでない場合は、高さと幅のパラメータとしてdpピクセルを使用する方法はありますか?
ありがとうございます。
Bitmap.createBitmap(int width、int height、Bitmap.Config config)メソッドは単に高さと幅を指定します。これらが実際のピクセルかdpピクセルかはわかりません。ビットマップを作成するときに幅と高さに密度に依存しないピクセルを使用する
私の質問:
1)は、画素DPこれらの値はありますか? 2.)そうでない場合は、高さと幅のパラメータとしてdpピクセルを使用する方法はありますか?
ありがとうございます。
ピクセルを使用します(通常、dpピクセルではありません)。通常のピクセルにDPであなたのパラメータを変換するには、次のメソッドを使用します。
public static float dipToPixels(Context context, float dipValue) {
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dipValue, metrics);
}
値は、ピクセル(定期的ではなく、DP)です。ピクセルサイズを受け入れるすべての関数では、サイズは通常は通常のピクセルサイズであることに言及する価値があります。これは、ビューの幅と高さ、位置、描画可能なサイズなどに当てはまります。
dpを提供したい場合は、dpからピクセルへの変換関数がたくさんあります。これは非常に単純な式です。
ビットマップデコード処理中にビットマップをデコードして密度を変更する場合は、BitmapFactory.decodeXYZ
を参照して、密度関連フィールドのBitmapFactory.Options
をよく見てください。同じソースビットマップ(ウェブからダウンロードされたビットマップなど)が異なる密度のデバイスで異なるピクセルサイズになるようにする場合は、これは便利です。
これは受け入れられた回答です。はるかに明確ですIMO –
Bitmap
を作成するには、幅と高さをXMLファイルで定義します。 XMLファイル内の
:
これは私がやったことある
drawing_dimensions.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="bitmapWidth">160dp</dimen>
<dimen name="bitmapHeight">128dp</dimen>
</resources>
これは任意のユニットに変更できます次に、あなただけの活動でこれへの参照を作成する必要が
を使用します
DrawingActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//onCreate.....
// referencing to the dimension resource XML just created
int bitmapWidth = getResources().getDimension(R.dimen.bitmapWidth);
int bitmapHeight = getResources().getDimension(R.dimen.bitmapHeight);
Bitmap myBitmap = Bitmap.createScaledBitmap(
getResources().getDrawable(R.drawable.my_image), bitmapWidth,
bitmapHeight, true);
を、私は、このことができますコーディング幸せを願って!
これは動作しません。 Bitmap.createScaledBitmap()は、Drawableではなく、最初の引数としてBitmapをとります。 –
申し訳ありませんが、これは受け入れられた答えであることができる方法を理解することはできませんまた、 "使用、ピクセル、...ピクセルに変換"と述べる6回upvoted –
申し訳ありません、再読した後、私は今理解しています...編集を投稿しました –