2015-11-02 2 views
0

Я разрабатываю приложение для Android, у которого есть кнопки и изображения. Мне нужно сделать его отзывчивым. Если я использую более крупные устройства, такие как планшеты, он отображает элементы управления очень маленькие. И когда я использовал в ландшафтном режиме, он отображает половину элементов управления или элементов. Как я могу это преодолеть и заставить приложение реагировать на все устройства. Я приложил один из моих XML-кода ниже.Android-приложение Отзывчивое (подходит для всех размеров экрана)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:layout_margin="10dp" 
android:orientation="vertical" 
> 

<ImageView 
    android:id="@+id/imageView1" 
    android:layout_width="fill_parent" 
    android:layout_height="125dp" 
    android:layout_marginTop="50dp" 
    android:layout_weight="0.01" 
    android:adjustViewBounds="true" 
    >   
</ImageView> 

<LinearLayout 
    android:id="@+id/layButtonH" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="0.01" 
    android:layout_marginTop="20dp" 
    android:gravity="center" 
    android:orientation="vertical" > 

    <Button 
    android:id="@+id/addnew" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text=" ADD NEW  " 
    android:background="@drawable/button_shape" 
    android:textColor="#FFFFFF"/> 


    <Button 
     android:id="@+id/open" 
     android:background="@drawable/button_shape_cancel" 
     android:layout_marginTop="30dp" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="  OPEN   " 
     android:textColor="#FFFFFF" /> 
    <Button 
     android:id="@+id/Register" 
     android:background="@drawable/button_shape_cancel" 
     android:layout_marginTop="30dp" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="  LOGIN  " 
     android:textColor="#FFFFFF" /> 


</LinearLayout> 

ответ

0

Вы можете начать с указанных ниже ресурсов. Создание приложения для всех размеров экрана требует определенного рассмотрения при разработке и разработке приложения.

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

Кроме того, похоже, что в ландшафтном режиме ваши виджеты выходят за пределы высоты экрана. Быстрое решение было бы поставить LinearLayout в пределах ScrollView, чтобы он прокручивался, когда в ландшафте, и вы видите все свои элементы управления. Но идеальным способом было бы иметь разные макеты для пейзажных и портретных режимов.

Если вы используете Scrollview код будет выглядеть следующим образом:

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

<!-- Your remaining xml elements --> 

</ScrollView> 

Ref:

  1. Design for multiple screens

  2. Supporting different screen sizes

  3. Supporting multiple screens
0

Для адаптивного дизайна принять 1) Не давать жесткие значения коды вроде как 125dp, а не пользователя wrap_content или match_parent собственности 2) Поместите изображения при разрешении вытяжки в соответствии с резолюцией ОС принимать изображения одномастный для его разрешения, например, для дизайна планшета создайте папку под названием resable-sw600 под разрешением и поместите в нее изображения для планшета. 3) То же самое для значений-> размер создает другой размер файла с определенным именем папки. например, значения-sw600, который используется для планшета . 4) Используйте элемент управления ScrollView, чтобы избежать резки экрана в ландшафтном режиме. Для получения более подробной информации и рекомендаций посетите http://developer.android.com/guide/practices/screens_support.html и http://developer.android.com/training/multiscreen/screendensities.html

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