2009-12-22 1 views
0

Как показать элементы управления в фиксированной позиции для различных разрешений экрана в Android?Как показать элементы управления в фиксированной позиции для различных разрешений экрана в 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) разрешение, то прогрессбар появляется в нижней части экрана, но если я бегу в другом разрешении (WQVGA432 - 240x432) индикатор прогресса отображается в середине экрана. Я не могу показать его в фиксированном положении.

Я использую файл манифеста показать ниже, но нет выхода

<supports-screens android:smallScreens="true" 
       android:normalScreens="true" 
       android:largeScreens="true" 
       android:anyDensity="true" /> 

у меня нет решения поэтому, пожалуйста, дайте мне некоторое представление о том, чтобы решить эту проблему.

ответ

1

Если вы хотите, чтобы ваши макеты работали на разных экранах разрешения, вы должны их калибровать, используя dip в качестве устройства. Например:

android:layout_marginRight="10dip" 

dip означает Device Independent Pixel и использование их в макете означает, что Android будет автоматически масштабировать макет в зависимости от отображения устройства под ваше приложение.

Вы можете прочитать об этом в Supporting Multiple Screens page in the Android Developer Documentation. В этом документе также есть некоторые другие варианты обработки различных дисплеев, но я думаю, что использование dip, вероятно, является самым простым.

0

Это зависит от того, как вы определили свой макет: размещение вашего макета XML поможет здесь.

0

Я предположил бы, если его в середине у вас есть что-то вроде:

android:layout_gravity="center" 

Но да, размещая ваш XML будет немного помочь!

Смежные вопросы