AndroidエミュレータでWVGA800スキンを使用しているので、密度(hw.lcd.density)は240です。アクティビティビューの下部に4つの画像ボタン(72ピクセル/インチ)を配置する必要があります。解像度は480X800なので、画像の幅は120ピクセルにする必要があります。問題は、アプリケーションが起動され、3つのボタンがすべての幅を持ち、4番目のボタンの場所がない場合です。次に、解像度240ピクセル/ 120pxのFireworksでボタン画像を作成しましたが、問題は残ります。誰かが正しいdrawable(サイズとdpi)を作る方法を説明して、Android上のピクセルでピクセルを表示できるようにしましたか?Android、画像、dpi
答えて
実際には幅が320ピクセルなので、画面全体の4つのボタンはそれぞれ80dpiに設定されています。 Androidは、密度に依存しないピクセルを480ピクセルの適切な画面サイズに調整します。
イメージDPIは完全に無視してください。それは無関係なもので、ピクセルサイズだけ知る必要があります。私が実際に提案するのは、ボタンの背景として使用する画像をNinePatchにすることです。 StateListDrawableに入れるには、実際にはいくつかのフォーカス状態が定義されています(例:押しつけられ、フォーカスされている)。
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/my_nine_patch"
android:text="button 1"
android:layout_weight="1"
/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/my_nine_patch"
android:text="button 2"
android:layout_weight="1"
/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/my_nine_patch"
android:text="button 3"
android:layout_weight="1"
/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/my_nine_patch"
android:text="button 4"
android:layout_weight="1"
/>
</LinearLayout>
fill_parent
にすべてのボタンを設定し、それらをすべて同じ重みを与える:あなたのNinePatchを持っていたら、ちょうどそうは次のようにのLinearLayoutを作成します。親に均等にフィットするようにストレッチします。一定のピクセルやディップサイズを指定することについては、まったく心配する必要はありません。また、解像度にかかわらず、すべてのAndroid搭載端末に均等に分割されます。
1)私はWVGA800の解像度が800X480(高さ×幅)であることを理解しています。また、この解像度は、HTC Desire仕様(私のテスト環境)にも反映されています。 4で割った480は120なので、各ボタンは120ピクセル幅でなければなりません。どのように480を320にすることができますか(本当に私の場合、4番目のボタンにはスペースがありません)? 2)画像にグラデーションが含まれているので、ストレッチを避けようとしています。私は、少なくとも私の好みの解像度のためにピクセルで完璧なピクセルを達成したいです。 誰かがこのテーマについてより多くの情報を提供できますか? – StevenR
320ピクセルのコメントは私のものではありませんでした。理論的には、ボタンは120ピクセルでなければなりませんが、それらの間のパディングも考慮してください。また、ユーザーが横向きに回転するとどうなりますか?あなたは9パッチの画像でグラデーションを扱うことができます。ちょっとややこしいです。 9パッチに関する詳細は次のとおりです。http://forum.xda-developers.com/showthread.php?t=580351 – kcoppock
res/drawable
に画像を置くと、Androidは160dpiの画像であると想定し、解像度に合わせて拡大/縮小します。
ボタン画像をres/drawable-hdpi
に入れて、240dpi前後の濃度を表示するか、またはres/drawable-nodpi
に入れて、現在の画面密度に関係なく拡大することはできません。
レイアウトではまだ@drawable/whatever
と表示されていますが、エンジンは自動的に最適なマッチを選択します。
- 1. 画像のDPIを改善する
- 2. 画像ファイルのDPIを読む
- 3. アクションスクリプトで画像dpiを抽出する
- 4. Android 420 dpiと560dpi
- 5. OpenCv:異なるdpi画像の関心領域(ROI)
- 6. アップロードされた画像のC#変更dpi
- 7. 解像度が同じデバイスでのAndroid DPIの独立性
- 8. Androidタブレットdpiの違い
- 9. Android Nexus 7 DPI for Eclipse
- 10. PHP拡張機能を使用しない画像(JPEG、PNG、SVG、GIF)の画像解像度(DPI)を取得
- 11. Androidの画面メトリックスの問題 - 高さ、幅、dpi、テキストサイズ
- 12. dpiではなく、画面サイズ別にAndroidのレイアウト
- 13. Android:ナビゲーションドロワーヘッダー画像
- 14. Androidイメージボタンフェード画像
- 15. Android URL画像
- 16. Androidインテント画像
- 17. Androidギャラリーサムネイル画像
- 18. Androidアップロード画像
- 19. Androidの画像
- 20. Android:サークルプロフィール画像
- 21. Androidスタジオアプリサークルプロフィール画像
- 22. Androidマスク画像
- 23. Androidレイアウトの画像画像の行
- 24. Android Recyclerviewの画像の画像
- 25. Androidデフォルトカメラキャプチャ画像返信画像URI null
- 26. Androidの画像、テキスト/テキスト、画像
- 27. Android - 画像トランジションvelcome画面
- 28. 画像をAndroidで描画
- 29. Androidの画像カウントインジケータ
- 30. Androidの3D画像
800X480デバイスがレイアウトで使用されていると書いていたように、4つのボタン(72ピクセル/ cmのリソースを持つImageButton、Fireworks CS5の標準解像度、Photoshopも信じています)は幅120ピクセルです。 pxがdpに置き換えられた場合、私の4番目のボタンのスペースがなくなり、すべてのボタンが伸びてぼやけていました。 1pxは1dpではありません!したがって、dpを使うには、pxを1.5で割る必要があります。たとえば、画像が60pxの場合、レイアウトで40dpを使用する必要があります。このアプローチは、低解像度のデバイス、例えばHTCの猛烈な火事でも機能します。私のImageButtonは正しくサイズ変更されました。 – StevenR