Как показать элементы управления в фиксированной позиции для различных разрешений экрана в Android?

StackOverflow https://stackoverflow.com/questions/1946480

  •  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 будет немного помогать!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top