2012-03-28 3 views
1

Es gab einen Fehler auf meinem Design für die meisten .xml-Dateien, wo die Größen normalerweise auf einigen Bildschirmen und einige auf unteren Bildschirmen größer wird. Ich benutze px (Pixel).Android .xml entwirft

Ich weiß, dass dies eine schlechte Wahl an meinem Ende sein könnte, weil neue Telefone mit mehr Pixelverhältnis enden. zB Samsung Galaxy Nexus macht den gesamten Text zu einem winzigen Text.

Was wäre ein weit geeigneterer Typ für künftige Handys zu kommen?

Extras:

Ich habe für eine lange Zeit linear Layout benutzen aber jetzt, dass ich ein Scrollen für langes Menü benötigen habe ich eine RelativeLayout, die einen Scroll verschachtelt die Scroll eine lineare Layout nisten. Wäre es eine bessere Option, ein TableLayout zu verschachteln, um mehr Kontrolle über die Ansicht zu haben?

Wollte den Fragenbildschirm nicht überfluten, weil er hässlich aussehen würde.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/layout_root" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

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

    <LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

      <TextView 
       android:id="@+id/tab_tv_one" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_above="@+id/auto_Action" 
       android:background="#666666" 
       android:text="@string/options_dialog_menu_Action" 
       android:textSize="27px" 
       /> 

      <RadioGroup 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical"> 

      <RadioButton 
       android:id="@+id/FirstOption" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_above="@+id/manual_Action" 
       android:layout_below="@+id/tab_tv_one" 
       android:text="@string/options_dialog_menu_Auto_Action" 

       android:textSize="27px" /> 

      <RadioButton 
       android:id="@+id/SecondOption" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_above="@+id/tab_tv_two" 
       android:layout_below="@+id/auto_Action" 
       android:text="@string/options_dialog_menu_Manual_Action" 
       android:textSize="27px" 
       android:onClick="onClick" 
       android:clickable="true" 

       /> 

      <RadioButton 
       android:id="@+id/ThirdOption" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_above="@+id/tab_tv_two" 
       android:layout_below="@+id/manual_Action" 
       android:textSize="27px" 
       android:onClick="onClick" 
       android:clickable="true" 

       /> 

      </RadioGroup> 



      <TextView 
       android:id="@+id/tab_tv_two" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_above="@+id/text_size" 
       android:layout_below="@+id/manual_Action" 
       android:background="#666666" 
       android:text="@string/options_dialog_menu_Layout_Options" 
       android:textSize="27px" 
       /> 

      <TextView 
       android:id="@+id/text_size" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_above="@+id/background_clr" 
       android:layout_below="@+id/tab_tv_two" 
       android:text="@string/options_dialog_menu_Text_Size" 
       android:textSize="27px" 
       android:onClick="onClick" 
       android:clickable="true" 

       /> 

      <TextView 
       android:id="@+id/Options_clr" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_above="@+id/brightness_ctrl" 
       android:layout_below="@+id/text_size" 
       android:text="@string/options_dialog_menu_Color_Options" 
       android:textSize="27px" 
       android:onClick="onClick" 
       android:clickable="true" 

       /> 

      <TextView 
       android:id="@+id/brightness_ctrl" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/background_clr" 
       android:text="@string/options_dialog_menu_Brightness_color" 
       android:textSize="27px" 
       android:onClick="onClick" 
       android:clickable="true" 

       /> 
      <TextView 
       android:id="@+id/backToBasics" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/brightness_ctrl" 
       android:text="@string/options_dialog_menu_Back_To_Basics" 
       android:textSize="27px" 

       android:onClick="onClick" 
       android:clickable="true" 
       /> 


    </LinearLayout> 
    </ScrollView> 
</RelativeLayout> 
+1

Ich denke, dass Sie dp anstelle von Pixel verwenden müssen. – kosa

Antwort

1

Verwenden Sie keine Pixel, verwenden Sie dp (aka dip aka Dichte unabhängige Pixel). Ansonsten, wie Sie angemerkt haben, hängt die Größe von der Dichte ab, was nicht gut ist.

Es ist nicht nur die Galaxie Nexus, ldpi Telefone werden anders aussehen als mdpi, die anders als HDPI etc. aussehen wird. Es gibt kaum einen guten Grund, px Größen zu verwenden, insbesondere in Bezug auf Ansicht Dimensionen.

In Bezug auf Ihre zusätzliche Frage hängt es ganz davon ab, wie Ihr Layout aussehen soll. Ohne Code zu sehen und/oder zumindest zu wissen, was Sie vorhaben (was Sie jetzt sehen), wird das niemand wirklich beantworten können.

+0

Ich werde den Code hinzufügen. Ich wollte den Fragebildschirm nicht zu sehr überfluten. – sdfwer

+0

Also anders als das Ändern von Pixeln zu dp (was ein Schmerz sein wird, aber es total wert ist), machen Sie nichts Unvernünftiges. Es sei denn, Sie haben Probleme, das Layout so zu gestalten, wie Sie es möchten. Lassen Sie es einfach so wie es ist. Wenn Sie feststellen, dass Sie Features in der Tabellenansicht benötigen, gibt es keinen Grund, sie nicht zu verwenden, die ich sehen kann, und Sie können immer später wechseln, wenn Sie sie wirklich brauchen. –