2013-11-18 3 views
0

Я разрабатываю приложение для мобильных телефонов и планшетов, дело в том, что мне нужно, чтобы приложение запускалось на версии 2.3.3 для Android 2.3 (я думаю, API-уровень 10), который эти устройства используют экран размером 2,7 дюйма, поэтому я стараюсь соответствовать приложению на этих экранах и 4-дюймовому экрану, теперь дело в таблетках ... Приложение действительно простое, я просто использую TableLayout внутри scrollview с некоторыми TextViews и Edittexts; для маленьких экранов он визуализируется отлично, но в планшетах это кажется не очень хорошим, половина экрана тратится впустую, ну, я просто хочу, чтобы текстовые изображения и Edittext отображали весь экран ... Я надел манифест, что приложение работает только на портрете Режим. Кроме того, я использую андроид студию ... вот XML деятельности:Как сделать программу для разных экранов на android

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:fillViewport="true" 
    android:background="@drawable/logixbackground"> 

    <TableLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:paddingLeft="@dimen/activity_horizontal_margin" 
     android:paddingRight="@dimen/activity_horizontal_margin" 
     android:paddingTop="@dimen/activity_vertical_margin" 
     android:paddingBottom="@dimen/activity_vertical_margin" 
     tools:context=".GPSActivity" 
     > 

     <TableRow 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textAppearance="?android:attr/textAppearanceLarge" 
       android:text="@string/txvwTittle" 
       android:id="@+id/txtVwTitulo" 
       android:textSize="18sp" 
       android:textColor="#c61d11" 
       android:inputType="none" 
       android:layout_column="0" 
       android:focusable="false" 
       android:textStyle="bold" /> 
     </TableRow> 

     <TableRow 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_marginBottom="5dp"> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/tv_velocimetro" 
       android:id="@+id/txtVwVelocimetro" 
       android:layout_column="0" 
       android:layout_marginTop="10dp" 
       android:focusable="false" 
       android:textStyle="bold" 
       android:textSize="20dp" /> 
     </TableRow> 

     <TableRow 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"> 

      <TableRow 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content"> 

       <EditText 
        android:layout_width="150dp" 
        android:layout_height="38dp" 
        android:id="@+id/edTxtVelocidad" 
        android:layout_gravity="left" 
        android:inputType="none" 
        android:clickable="false" 
        android:editable="false" 
        android:focusable="false" 
        android:background="@drawable/abc_ab_transparent_dark_holo" 
        android:textStyle="bold" 
        android:textColor="#c61d11" 
        android:singleLine="false" 
        android:layout_marginTop="10dp" /> 

       <EditText 
        android:layout_width="140dp" 
        android:layout_height="38dp" 
        android:id="@+id/edTxtVelMedida" 
        android:inputType="none" 
        android:layout_marginLeft="10dp" 
        android:clickable="false" 
        android:editable="false" 
        android:focusable="false" 
        android:background="@drawable/abc_ab_transparent_dark_holo" 
        android:textColor="#c61d11" 
        android:textStyle="bold"/> 

      </TableRow> 

     </TableRow> 

     <TableRow 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="@string/tv_brujula" 
       android:id="@+id/txtVwBrujula" 
       android:layout_column="0" 
       android:layout_marginTop="5dp" 
       android:textSize="20sp" 
       android:inputType="none" 
       android:focusable="false" 
       android:textStyle="bold"/> 
     </TableRow> 

     <TableRow 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 

      <TableRow> 

       <EditText 
        android:layout_width="150dp" 
        android:layout_height="38dp" 
        android:id="@+id/edTxtBrujula" 
        android:layout_column="0" 
        android:inputType="none|number" 
        android:focusable="false" 
        android:background="@drawable/abc_ab_transparent_dark_holo" 
        android:textStyle="bold" 
        android:textColor="#c61d11"/> 

       <EditText 
        android:layout_width="140dp" 
        android:layout_height="38dp" 
        android:id="@+id/edTxtBrujdireccion" 
        android:layout_marginLeft="10dp" 
        android:inputType="textCapCharacters|none" 
        android:focusable="false" 
        android:background="@drawable/abc_ab_transparent_dark_holo" 
        android:textStyle="bold" 
        android:textColor="#c61d11"/> 

      </TableRow> 
     </TableRow> 

     <TableRow 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="@string/tvgeopos" 
       android:id="@+id/txtVwGeoPos" 
       android:layout_column="0" 
       android:layout_marginTop="5dp" 
       android:inputType="none" 
       android:focusable="false" 
       android:textStyle="bold" 
       android:textSize="20dp" /> 
     </TableRow> 

     <TableRow 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="@string/txtvw_latitud" 
       android:id="@+id/txtVwLatitud" 
       android:layout_column="0" 
       android:layout_marginTop="5dp" 
       android:inputType="none" 
       android:focusable="false" 
       android:textStyle="bold" 
       android:textSize="18dp" /> 
     </TableRow> 

     <TableRow 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"> 

      <EditText 
       android:layout_width="match_parent" 
       android:layout_height="38dp" 
       android:id="@+id/edTxtLatitud" 
       android:layout_column="0" 
       android:focusable="true" 
       android:textStyle="bold" 
       android:textColor="#c61d11" 
       android:enabled="true" 
       android:editable="true" 
       android:focusableInTouchMode="false" 
       android:background="@drawable/abc_ab_transparent_dark_holo" 
       android:inputType="number" /> 
     </TableRow> 

     <TableRow 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="@string/txtvw_longitud" 
       android:id="@+id/txtVwLongitud" 
       android:layout_column="0" 
       android:layout_marginTop="5dp" 
       android:inputType="none" 
       android:textSize="18dp" 
       android:focusable="false" 
       android:textStyle="bold"/> 
     </TableRow> 

     <TableRow 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"> 

      <EditText 
       android:layout_width="match_parent" 
       android:layout_height="38dp" 
       android:id="@+id/edTxtLongitud" 
       android:layout_column="0" 
       android:focusable="true" 
       android:background="@drawable/abc_ab_transparent_dark_holo" 
       android:textStyle="bold" 
       android:textColor="#c61d11" 
       android:enabled="true" 
       android:editable="true" 
       android:focusableInTouchMode="false"/> 
     </TableRow> 

     <TableRow 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"> 

      <Button 
       style="?android:attr/buttonStyleSmall" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="@string/btn_agregar_punto_interes" 
       android:id="@+id/btnPuntoInteres" 
       android:layout_column="0" 
       android:textStyle="bold" 
       android:layout_marginTop="5dp" 
       android:textSize="15dp" /> 
     </TableRow> 

     <TableRow 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"> 

      <Button 
       style="?android:attr/buttonStyleSmall" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="@string/btn_ver_punto_interes" 
       android:id="@+id/btnVerPuntoInteres" 
       android:layout_column="0" 
       android:textStyle="bold" 
       android:textSize="15dp" /> 
     </TableRow> 

     <TableRow 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"> 

      <TableRow> 

       <Button 
        style="?android:attr/buttonStyleSmall" 
        android:layout_width="150dp" 
        android:layout_height="wrap_content" 
        android:text="@string/btn_panico" 
        android:id="@+id/btnPanico" 
        android:layout_column="0" 
        android:textStyle="bold" 
        android:textSize="15dp" 
        android:textColor="#b2000c" /> 

       <Button 
        style="?android:attr/buttonStyleSmall" 
        android:layout_width="150dp" 
        android:layout_height="wrap_content" 
        android:text="@string/btn_ir_logix" 
        android:id="@+id/btnIrLogix" 
        android:textStyle="bold" 
        android:textSize="15dp" /> 

      </TableRow> 
     </TableRow> 
    </TableLayout> 
</ScrollView> 

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

Спасибо за консультацию!

ответ

1

Вы можете создать два макета, один из которых по умолчанию будет использоваться мобильными телефонами с маленькими экранами, а его xml-файл будет в стандартной папке макета, второй - для планшетов, и он должен быть в папке макета - sw600dp.

Что вам нужно сделать, это скопировать ваш текущий оптимизированный сотовый телефон макет в этот новый макет папки sw600dp и настроить его, пока он не станет хорошо на планшетах.

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

+0

Привет @marcin_j, как я могу это достичь? создавая папки, которые вы сказали, и макеты? спасибо в совете! – Elsanty

+0

Да, эта новая папка, которую вы должны создать самостоятельно – marcinj

+0

, и мне нужно было указать в манифесте или в коде что-то о этой новой папке макета? – Elsanty

1

Я думаю, что вам, вероятно, следует начать с reading the documents, который четко изложит, что вы должны делать.

В противном случае версия tl; dr вы можете иметь несколько макетов для одного и того же Activity/Fragment - один для небольших размеров экрана и один для большого.

+0

Привет @panini спасибо за быстрый ответ ... Я прочитал документацию, но мой английский не к добру, что в моем приложении заключается в том, что я использую в некоторых частях 2 edittext, как я могу увеличить это и 1 возьмите половину экрана, а другую вторую половину ...? потому что, как вы можете видеть, я использую 150dp для layout_width – Elsanty

0

Не уверен, если это помогает, но я заметил в графическом макете, если вы используете Android-студия, он имеет возможность сделать макет ландшафта. Он находится в выпадающем меню в левой части окна, в котором есть вкладка «Дизайн» в макете xml. Первый вариант в раскрывающемся списке - «Создать ландшафтную вариацию». Надеюсь, это поможет. Хотя вам все равно придется перепроектировать для более широкого экрана.