2012-01-25 15 views
0

アプリケーション用の汎用レイアウトを作成する際に問題があります。予想どおり、さまざまなデバイスで使用でき、それぞれのデバイスで適切に動作するようにしたいと考えています。この問題を解決するにはいくつかの方法がありますが、xmlファイル(web.configファイルと似ています)を作成する必要があります。アプリケーションの冒頭で、デバイスの画面の幅と高さを取得し、各コントロール(textview、spinner 、ボタンなど)の属性(マージン、パディング、幅、高さなど)を計算し、これらの計算値をmy xmlファイルに保存します。最後に私のレイアウトxmlsからこれらの値に到達したいので、私のレイアウトのビジュアルはデバイスから独立しており、各デバイスに対して適切に動作します。これは達成できますか?私はインターネット上で同様のソリューションを見つけることができませんでした。誰でも助けてくれますか?Android - 可能な限り一般的なレイアウトを作成するにはどうすればよいですか?

ありがとうございます。

+2

RelativeLayoutを使用するよりも、これがどのように優れているかはわかりません。 – onit

+0

ほとんどのアンドロイドデバイスで画面の向きを切り替えることはできません。 – nfechner

答えて

2

RelativeLayoutなどのメカニズムを使用してハードコーディング値を使用せずに、ほとんどのことを行うことができます。 2パスの動的レイアウトシステムは、あなたが何を記述しているのかを正確に判断します。

しかし、より具体的にする必要がある場合は、動的リソースシステムが役立つところです。 res/drawable、res/layout、res/valuesなどで定義したすべてについて、正しいフォーマットで兄弟ディレクトリを修飾することで、デバイスの向き、ピクセル密度、画面サイズ、言語などの特定の実装を定義できます。異なるフォルダに同じ名前のリソースを提供すると、システムは実行時環境に基づいてどちらを使用するかを決定します。私は動的にレイアウトパラメータを設定するには、カスタム測定を使用することはありません

http://developer.android.com/guide/topics/resources/providing-resources.html

1

は、このに外観を与えます。 Androidには、これに対処するためのさまざまな機能が用意されています(複数の画像リソースや画面サイズに特有のレイアウトなど)。

ハードコードされた値でAndroidのレイアウトをカスタマイズしようとするほど、特定のパラメータを設定する場合は常にDPを使用するようになりました。

要するに、ホイールを再発明しようとする必要はありません。あなたが望むものを実現するために、Androidが既に組み込んだうまく設計された機能を使用してください。

関連する問題