Я чувствую, что я единственный, кто здесь потерялся. Кажется, все хорошо с использованием DP, чтобы приложения работали на разных размерах экрана. Для меня, всякий раз, когда я загружаю другой экран, выравнивание никогда не будет масштабироваться должным образом.Поддержка андроидов всех размеров экрана
Однако, если я использую android: вес, все будет масштабироваться на всех устройствах. Проблема, с которой я столкнулся с весом для Android, заключается в том, что она не всегда хочет значительно изменить размер изображений в макетах, не говоря уже о предупреждениях, которые я получу для использования вложенных весов.
Одно из решений, которое я вижу, создает новый размер экрана для каждого возможного размера экрана. Это то, что делают все остальные? Сначала я подумал, что нам придется создавать только макеты x-large, small и etc только для того, чтобы обнаружить, что даже они не справляются с различными размерами экрана (даже нексуса 7 не попадает ни в одну из этих категорий) ,
Пример кода
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="50"
android:background="@drawable/layout_border"
android:padding="10dp" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="160dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:contentDescription="@string/app_name"
android:src="@drawable/yg" />
<ProgressBar
android:id="@+id/progressBar2"
style="@android:style/Widget.ProgressBar.Horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/imageView1"
android:layout_alignParentRight="true"
android:layout_toRightOf="@+id/imageView1"
android:paddingBottom="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:progress="50" />
<TextView
android:id="@+id/textView1"
style="@style/NormalFont"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/progressBar2"
android:layout_alignLeft="@+id/progressBar2"
android:layout_marginLeft="36dp"
android:text="@string/exercise_percent" />
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="100dip"
android:layout_height="100dip"
android:layout_above="@+id/textView1"
android:layout_toRightOf="@+id/imageView1"
android:adjustViewBounds="true"
android:contentDescription="@string/app_name"
android:background="@drawable/start"
android:onClick="meditateTask" />
</RelativeLayout>
К примеру, здесь ImageButton у меня будет неуместной на каждом новом размере экрана.
Можете ли вы представить пример макетов и описать проблемы, которые у вас есть с каждым из них? –
Добавлен образец макета, который, похоже, не хочет правильно выравниваться. – user3171099
android: layout_weight используется для масштабирования ОДНОГО измерения за раз ** пропорционально ** (допустим, в%, для выделения). Вложенные веса ** плохо работают *. Помимо этого вы можете использовать ** 9 патчей **, ** dp ** (независимые от устройства пиксели), а также старые старые ** выпадающие и значения ** папки с графикой и размерами ad hoc. ** TABLETS ** попадают в другую категорию папок с выводами/значениями. –