0

画面に正確な正方形の3x3cmを描く必要があります。設計作業として、どのタイプの画面でも正確な寸法が必要です。

サムスンエースの結果は2.8cmであり、結果は正確ではありません。

Java..。

DisplayMetrics metrics = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(metrics);

float ld =  30 * metrics.densityDpi * (metrics.density/25.4f);

bitmap = Bitmap.createBitmap((int) ld, (int) ld, Bitmap.Config.ARGB_8888);

canvas = new Canvas(bitmap);
paint = new Paint();

paint.setColor(Color.WHITE);

imageView.setImageBitmap(bitmap);

canvas.drawRect(0, 0, (float) ld, (float) ld, paint);

XML..。

<ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/image_view"
        android:scaleType="center"/>

どうもありがとうございます

4

1 に答える 1

3

特定の方向 x と y で dpi を使用する必要があると思います。

// We want 30/25.4 inches but in dots
float inches = 30/25.4f;

float xdpi = getResources().getDisplayMetrics().xdpi;
float xDots = inches * xdpi;
float ydpi = getResources().getDisplayMetrics().ydpi;
float yDots = inches * ydpi;

Paint paint = new Paint();
paint.setColor(Color.WHITE);
canvas.drawRect(0, 0, xDots, yDots, paint);

その後、より多くのチャンスが得られますが、すべての電話で正確ではありません. このコードを Android アプリの onDraw() メソッドに配置すると、次の結果が得られました。

Nexus 7:        2.8 cm
Galaxy Nexus    3.0 cm
HTC Sensation   3.0 cm
HTC Desire HD   2.7 cm

したがって、すべての場合に正確というわけではありません。

于 2013-02-23T01:20:21.107 に答える