2012-04-13 12 views
0

このトピックに関する多くの情報がありますが、まだまだ混乱しています。私はビットマップとテキストで動作するアンドロイドアプリのクラスビューを作った。中1の持つ例につき複数の画面のサポートを表示

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

が、それは私の携帯電話に私がしたいだけのように見えるので、私は、それはそれを行う方法の最善ではないのですが、知っている:

は、私はそのようなテキスト位置を定義します画面が小さくなったり大きくなったり、画面の外に出たりします。

どうすればいいですか?

答えて

0

キャンバスの大きさに比べて、物事を配置するために、あなたの幅を選択することがベター - あなたはテキストをお使いの携帯電話にbにしたい場所を見つけ出す - 例えば、あなたはそれを中心に開始したい場合:

int x = canvas.getWidth()/2 

これらの相対的なタイプの測定値がうまくいかない場合、最後の手段として、androidはさまざまな値のフォルダ(たとえばvalues-small/dimen.xmlまたはvalues-xlarge/dimen.xml)で定義できる特別な種類のリソース(@dimen)を指定し、ハードコードの整数値がそこにあります。 (docsに見られるように)、その後、あなたのようにそれらを取得する他のリソースになります。

getResources().getDimensionPixelOffset(R.dimen.score_margin) 
+0

"canvas.getWidht/2"のようなものをできるだけ試しましたが、状況によっては動作しない場合がありますまあ...あなたの第二の欲求はもう少し複雑ですが、とにかくそれを試してみるつもりです。ありがとう。 – Kevin04PT

+0

@dimenリソースを使用しようとしましたが、本当にうまく動作します。先端に感謝します。 ;) – Kevin04PT

0

あなたは多くのソリューションがあります。

1)密度の独立したピクセル(DIP)と連携:

こちら浸漬するPXから変換するための方法である:

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)の割合と協力:

画面サイズを取得し、希望のテキストサイズと比較して余白をパーセントで追加してください

+0

ハム、ありがとう、これを試してみよう。ゲーム開発のためにグラフィックスを大きくすることが重要なので、私は他の欲望にもオープンしています。 :/ – Kevin04PT

関連する問題