2 年間の Android 開発の後、GridView をさまざまなサイズと解像度のデバイスで動作させるために提供する必要があるリソースについて、まだ 100% 確信が持てません。
私はまだ学んでいます.いくつかの癖があります。たとえば、mdpi デバイスの drawable-xhdpi ビンでのみ定義されているドローアブルを使用しようとするGridView
と、ドローアブルは視覚的に正しくサイズ変更されますが、その周りの空白は変更されず、元のサイズのままになります。当初、私はこの問題を回避するために、GridView
および関連するアダプタービューが含まれていましたが、これにはコードの匂いがたくさんあったため、手動でドローアブルのサイズを変更し、それぞれのビン (drawable-mdpi、drawable-hdpi、および drawable-xhdpi) に配置し、画像の強制をすべて削除しましたサイズなど
だから私は現在持っています:
<GridView
android:id="@id/home_image_grid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnWidth="100dp"
android:gravity="center"
android:listSelector="#00000000"
android:numColumns="auto_fit"
android:stretchMode="columnWidth"
>
</GridView>
各項目のレイアウトは次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="0dip"
android:gravity="center"
android:orientation="vertical"
android:padding="0dip">
<ImageView
android:id="@id/home_button_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:id="@id/home_button_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:textColor="@color/default_text_colour"
android:textSize="@dimen/home_button_text"
/>
</LinearLayout>
ここまでは順調ですね...
私が現在取り組んでいるアプリはほぼ完成しており、さまざまなデバイスでいくつかのテストを行っています。通常の画面サイズの xhdpi、hdpi、mdpi デバイスで問題なく表示されます。次に、テストを他のデバイスに拡張します-大画面サイズのmdpiであるHTC Flyerでテストしています-グリッドビューはゴミのように見えます-小さなmdpi画像を正しく取得しています。
周りを読んでいると、すべてのドローアブルを「ドローアブル」ビンに入れるように指示されているチュートリアルのチュートリアルを見つけたので、このアドバイスに従いましGridView
たGridView
。で各画像のサイズを手動で設定していることGridView
- これは私が最初から行っていたことであり、デバイスのすべての順列に対して手動で画像サイズを設定する必要があることを意味します。
だから..ここでトリックを逃したかどうか疑問に思っています-ドローアブルフォルダーに画像を貼り付け、すべての置換のサイズを手動で強制する最初のアプローチをとるべきですか? 画面サイズと解像度のすべての順列に対して、新しい一連の画像を描画する必要がありますか?
何をしても、テストしていないデバイスで見栄えがすることをどのように保証できますか?
いずれにせよ、私は何か間違ったことをしているように感じますが、手間をかけずにこれを適切に行う方法を理解することはできません. 誰でも助けることができますか?