2012-03-13 24 views
1

私は基本的なサーフェイスビューを拡張するクラスを使用しています。このクラスには、自分のゲームのメインロジックが含まれています。クラス内には、メインの更新機能と、すべてのキャンバスベースの図面コードがあります。Androidカスタムビュー - 異なる画面に合わせる

現在、私のコードではXMLを使用していません。私はSurfaceViewクラスの新しいインスタンスを作成し、これをアクティビティのビューとして設定します。私の質問はこれです複数の画面サイズをサポートする最も良い方法は何ですか?

私はゲームを書いているので、新しい画面サイズではレイアウトを変更したくありません。私はちょうどゲームを拡大し、画面の比率が私の開発デバイスと一致しない場合は、多少の空白を表示したいと思う。

私はAndroidデベロッパーガイドを読んだことがありますが、XMLを使用していないときの実際の実装方法に対する回答は究極的にはありません。

+0

サーフェスビューが取得する幅と高さの属性があるはずです(onMeasureなどのように)。これを使用して、そのパーセンテージに基づいてすべてのレイアウトを定義します。 – zapl

答えて

1

私はここで同じ問題がありますが、私は現時点で何を発見したか説明しようとします。

確かに、ゲームが実行されている画面の知識が必要です。devoloperのページにアクセスして入手方法を知ってください。

http://developer.android.com/reference/android/util/DisplayMetrics.html

あなたのゲームの行動はすべての異なるディスプレイで同じであることを確認するために密度の独立したピクセルで作業する必要があります。あなたがまだそれを知らないなら、おそらくあなたがdpを理解するのを助けるgoogleグループに関する記事があります。

http://groups.google.com/a/googleproductforums.com/forum/#!category-topic/mobile/android-devices/jeflid4UsMQ

だから今、主な問題:イメージ。

確実にわかっているように(低、中、高、およびxhigh dpi)、4種類の描画可能フォルダしかありません。問題は、10インチのタブレットと4インチのSmarthPhoneがおそらく同じ解像度またはdpi(ドット/インチ)を持つということです。したがって、同じドロウアブルフォルダから画像を印刷する場合、デバイスの画面が2倍の大きさであっても同じサイズになります。

この時点で、必要な数のソリューションが用意されています。イメージのサイズを変更して全体のビューを大きくしますが、おそらくDisplayMetricsクラスの情報が必要になるでしょう。私はまだ自分の意思決定に取り組んでいますが、それ以上の具体的な質問があれば、できるだけそれに答えるよう努力します。

関連する問題