0
私のアプリでは、Googleマップビューにオーバーレイされるビットマップアイコンを作成する必要があります。Android画面サイズでのビットマップサイズの作成
public Bitmap makeBubble(int radius, int color) {
Bitmap bm = Bitmap.createBitmap(radius * 2, radius * 2, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bm);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setColor(color);
paint.setStyle(Paint.Style.FILL);
canvas.drawCircle(bm.getWidth()/2, bm.getHeight()/2, radius, paint);
paint.setColor(Color.argb(255, Color.red(color), Color.green(color), Color.blue(color)));
paint.setStyle(Paint.Style.STROKE);
canvas.drawCircle(bm.getWidth()/2, bm.getHeight()/2, radius, paint);
return bm;
}
ただし、これらのアイコンのサイズは画面の密度によって大きく異なることが予想されます。
どのようにすべての画面濃度で同じサイズで作成しますか?その後、(名前を変更することができます)
<!-- file: /res/values/dimentions.xml (you can rename the file) -->
<resources>
<dimen name="circle_radius">24dp</dimen>
</resources>
そして、あなたはmakeBubble
これを行うにこの関数を呼び出すどこ:
私は半径を計算する(半径は任意の値ではなく、事前に定義することができます)ので、私はすることができますリソースに設定された値を使用しません。 – mbacvanski
どのように半径を計算しますか?何に基づいて? –
半径は別の要素に基づいて計算されますが、私の実際の質問は、2つのデバイスで同じ半径を指定すると、描画されるビットマップが画面の密度にかかわらず同じ物理サイズになることを確認することです。 – mbacvanski