Как показать элементы управления в фиксированной позиции для различных разрешений экрана в Android?
-
20-09-2019 - |
Вопрос
Как показать элементы управления в фиксированной позиции для различных разрешений экрана в Android?
У меня есть дизайн экрана, как ниже
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="center_horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/img_background_loadbackground">
<TableRow>
<TextView
android:id="@+id/tv1"
android:layout_width="fill_parent"
android:layout_height="300sp"/>
</TableRow>
<TableRow>
</TableRow>
<ProgressBar
android:id="@+id/progressbar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</TableLayout>
Он работает в разрешении HVGA (320x480), ProgressBar появляется в нижней части экрана, но если я запускаю в другом разрешении (WQVGA432 - 240x432), ProgressBar появляется в середине экрана. Я не могу показать это в фиксированной позиции.
Я использую Manifest File Show ниже, но нет вывода
<supports-screens android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:anyDensity="true" />
У меня нет решения, поэтому, пожалуйста, дайте мне представление о том, чтобы решить проблему.
Решение
Если вы хотите, чтобы ваши макеты работали на экранах разных разрешений, вы должны разбираться с ними, используя dip
как устройство. Например:
android:layout_marginRight="10dip"
dip
Выступает как Pixel Independe Pixel, и использование их в макете означает, что Android автоматически масштабирует ваш макет в зависимости от того, какое отображение имеет устройство, использующее ваше приложение.
Вы можете прочитать об этом в Поддержка нескольких экранов Страница в документации Android Developer. Анкет Этот документ также имеет некоторые другие варианты обработки различных дисплеев, но я думаю, что использует dip
Вероятно, самый простой.
Другие советы
Это зависит от того, как вы определили свой макет: публикация вашего макета XML поможет здесь.
Я предполагаю, что если это посередине, у вас есть что -то вроде:
android:layout_gravity="center"
Но да, публикация вашего XML будет немного помогать!