画面密度に基づく Android のボタン用画像リソースの選択は役に立たないことがわかりました。
私は子供向けのアプリを開発しているので、大きくわかりやすいボタンを付けたいと思っていますが、同時に、利用可能な画面の領域に制限する必要があります。
基本的に、密度ではなく、使用している画面サイズに適した画像サイズを使用したいと考えています。
たとえば、横向きモードで画面の横に 5 つのボタンを配置したいとします。私はこのようなことをしたい..
- 画面の高さを PIXELS で取得します。
- 各ボタン (hButton) の高さを計算し、間にスペースを確保します。
- 適切な画像リソースをロードします。つまり、少なくとも hButton ピクセルの最小のものです。
- 画像を hButton ピクセルの高さにスケーリングします。
そんな感じ。
Android にはこれを行う良い方法がありますか、それとも自分でコーディングする必要がありますか? 適切な画像にアクセスするにはどうすればよいですか? (私のボタンのほとんどは2つの画像を使用しています - 上と下)
ありがとう
編集:
私の質問では十分に明確ではなかったようです。ボタンのレイアウト方法を知る必要はありません。また、Android が密度に基づいて画像を選択する方法をよく理解しています。それが問題です。
これらの 2 つのデバイスを検討してください -
1/ Galaxy I9000 電話 - 画面サイズ 4 インチ HDPI
2/ Samsung Tab 3 タブレット - 画面サイズ 7 インチ HDPI
どちらも同じ画面密度であるため、同じ物理サイズで画像が表示されます。一方が 1 インチの正方形のアイコンは、もう一方が 1 インチの正方形になります。それが問題だ。ボタンを画面サイズに比例させたい。
サイズ固有のリソース (drawable-small など) を使用することもできますが、異なる密度の小さなデバイス間で問題が発生し、より多くのディレクトリを作成することになり、悪い考えに思えます。
私はさまざまなサイズを no-dpi ディレクトリに置き、必要に応じてロードすることに傾いています。