Так что я немного изо всех сил пытаюсь создать 2D карту значков, где каждый значок имеет размер 48x48 пикселей, а карта - сетку 9x9 (таким образом, размер 432x432 пикселей). Я безуспешно пытался начать с GridView и с тех пор решил попробовать использовать AbsoluteView внутри LinearView. Вот начало XML-файла (пока я не добавил все 81 значок, просто для краткости этого вопроса):
<AbsoluteLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="442px"
android:layout_height="442px"
android:padding="5px"
android:layout_gravity="center_horizontal"
android:background="#008000"
>
<ImageView
android:background="@drawable/water2"
android:layout_width="48px"
android:layout_height="48px"
android:layout_x="0px"
android:layout_y="0px"
/>
<ImageView
android:background="@drawable/water2"
android:layout_width="48px"
android:layout_height="48px"
android:layout_x="48px"
android:layout_y="0px"
/>
<ImageView
android:background="@drawable/water2"
android:layout_width="48px"
android:layout_height="48px"
android:layout_x="96px"
android:layout_y="0px"
/>
<ImageView
android:background="@drawable/water2"
android:layout_width="48px"
android:layout_height="48px"
android:layout_x="144px"
android:layout_y="0px"
/>
<ImageView
android:background="@drawable/water2"
android:layout_width="48px"
android:layout_height="48px"
android:layout_x="192px"
android:layout_y="0px"
/>
<ImageView
android:background="@drawable/water2"
android:layout_width="48px"
android:layout_height="48px"
android:layout_x="240px"
android:layout_y="0px"
/>
<ImageView
android:background="@drawable/water2"
android:layout_width="48px"
android:layout_height="48px"
android:layout_x="288px"
android:layout_y="0px"
/>
<ImageView
android:background="@drawable/water2"
android:layout_width="48px"
android:layout_height="48px"
android:layout_x="336px"
android:layout_y="0px"
/>
<ImageView
android:background="@drawable/water2"
android:layout_width="48px"
android:layout_height="48px"
android:layout_x="384px"
android:layout_y="0px"
/>
<ImageView
android:background="@drawable/water2"
android:layout_width="48px"
android:layout_height="48px"
android:layout_x="0px"
android:layout_y="48px"
/>
</AbsoluteLayout>
Когда я пытаюсь это сделать в Eclipse, это выглядит совершенно идеально. Когда я загружаю это на свой Samsung Captivate, это просто неправильно. Как будто иконки растягиваются, хотя я указал точные размеры в пикселях.
Я уверен, что, возможно, я совершаю какую-то ошибку, но независимо от того, что я пытаюсь, я не могу заставить иконки / рисованные элементы отображаться в их точных размерах. Если кто-то может указать, что я делаю неправильно, я был бы очень признателен.
Спасибо.
Итак, я изменил XML-файл, чтобы попытаться использовать TableLayout следующим образом:
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
>
<TableRow>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="0px">
<ImageView
android:src="@drawable/water2"
android:scaleType="fitXY"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<ImageView
android:src="@drawable/water2"
android:scaleType="fitXY"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<ImageView
android:src="@drawable/water2"
android:scaleType="fitXY"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<ImageView
android:src="@drawable/water2"
android:scaleType="fitXY"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<ImageView
android:src="@drawable/water2"
android:scaleType="fitXY"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<ImageView
android:src="@drawable/water2"
android:scaleType="fitXY"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<ImageView
android:src="@drawable/water2"
android:scaleType="fitXY"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<ImageView
android:src="@drawable/water2"
android:scaleType="fitXY"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<ImageView
android:src="@drawable/water2"
android:scaleType="fitXY"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
</TableRow>
</TableLayout>
Даже если бы я указал точные размеры ImageViews, они все равно растягивались, так что отображалось только около 5 значков.