0

このトピックについてはたくさんの情報があることは知っていますが、それでも少し混乱しています。ビットマップとテキストで動作するAndroidアプリのクラスビューを作成しました。

私はそのようにテキストの位置を定義します:

canvas.drawText("SCORE: " + score, (canvas.getWidth() - 150),
                    (canvas.getHeight() - 20), paintScore);

たとえば、携帯電話で見た目と同じように見えるので、これが最善の方法ではないことはわかっていますが、画面が小さいまたは大きい場合は、ひどい、または画面の外に見えます。

これをどのように行うべきですか?

4

2 に答える 2

0

キャンバスのサイズを基準にして物を配置する幅を選択することをお勧めします。たとえば、テキストを中央から開始する場合は、携帯電話のどこにテキストを配置するかを決定します。

int x = canvas.getWidth()/2

values-small/dimen.xmlこれらの相対型の測定値がうまくいかない場合は、最後の手段として、Androidはさまざまな値フォルダー(またはなど)で定義できる特別な種類のリソース(@dimen)を指定し、values-xlarge/dimen.xmlそこで整数値をハードコードします。(ドキュメントに記載されているように)次に、他のリソースと同じようにそれらを取得します。

getResources().getDimensionPixelOffset(R.dimen.score_margin)
于 2012-04-13T17:35:10.470 に答える
0

あなたには多くの解決策があります:

1)密度に依存しないピクセル(ディップ)で動作します:

これがpxからdipに変換する方法です:

public static int pxToDip(Activity activity, int size){

    Resources r = activity.getResources();
    int dipSize = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, size, r.getDisplayMetrics());

    return dipSize;

}

2)パーセンテージで作業する:

画面サイズを取得し、それを目的のテキストサイズと比較して、マージンをパーセントで追加します

于 2012-04-13T17:43:52.370 に答える