2017-04-05 171 views
0

我已经创建了一个XML文件。但问题是,当移动的屏幕大小改变了设计有一些变化。我已经搜查,但仍然confused.Wat我想要的是,设计仍然在每个移动相同,不能依赖于它的屏幕size.Following是我的XML文件 -布局改变与屏幕尺寸

player.xml

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

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="0" 
     android:background="#fff"> 

      <Button 
       android:layout_width="70dp" 
       android:layout_height="45dp" 
       android:background="@drawable/backbtn" 
       android:textSize="19dp" 
       android:id="@+id/back" 
       /> 
      <TextView 
       android:layout_width="335dp" 
       android:layout_height="45dp" 
       android:text="Welcome" 
       android:textSize="30dp" 
       android:background="#fff" 
       android:textColor="#000" 
       android:layout_marginRight="40dp" 
       android:paddingRight="40dp" 
       android:layout_alignParentTop="true" 
       android:layout_gravity="center" 
       android:gravity="center" 
       android:id="@+id/textView3" /> 

     <TextView 
       android:layout_width="20dp" 
       android:layout_height="30dp" 
       android:layout_weight="1" 
       android:layout_marginStart="10dp" 
       android:id="@+id/id" 
       android:layout_marginLeft="100dp" /> 


    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     > 

      <TextView 
      android:layout_width="match_parent" 
      android:layout_height="30dp" 
      android:id="@+id/plname" 
      android:text="ABC XYZ" 
      android:layout_gravity="center" 
      android:layout_weight="1" 
      android:textSize="20dp" 
      android:textStyle="bold" 
      android:textColor="#fff" 
      android:paddingLeft="5dp" 
      android:background="#7ee77c" 
      android:gravity="left|center" 
      /> 

     <TextView 
       android:layout_width="match_parent" 
       android:layout_height="30dp" 
       android:id="@+id/plid" 
       android:layout_toRightOf="@+id/plname" 
       android:layout_weight="1" 
       android:text="Player ID:" 
       android:textSize="20dp" 
       android:textStyle="bold" 
       android:textColor="#fff" 
       android:paddingLeft="10dp" 
       android:layout_gravity="center" 
       android:gravity="right|center" 
       android:background="#7ee77c" 
       /> 
      <TextView 
       android:layout_width="match_parent" 
       android:layout_height="30dp" 
       android:layout_weight="1" 
       android:id="@+id/plidtxt" 
       android:text="1000" 
       android:textColor="#fff" 
       android:background="#7ee77c" 
       android:textSize="20dp" 
       android:paddingTop="2dp" 
       android:textStyle="bold" 
       android:layout_gravity="center" 
       android:paddingLeft="10dp" 
       android:gravity="left|center" 
       /> 




    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="0" 
     > 

      <TextView 
       android:layout_width="170dp" 
       android:layout_height="29dp" 
       android:id="@+id/day" 
       android:layout_below="@id/line2" 
       android:text="Wednesday" 
       android:textStyle="bold" 
       android:textSize="20dp" 
       android:gravity="right|center" 
       android:textColor="#000" 
       android:paddingRight="10dp" 
       android:background="@android:color/transparent" 
       /> 
      <TextView 
       android:layout_width="115dp" 
       android:layout_height="29dp" 
       android:id="@+id/date" 
       android:layout_below="@+id/line2" 
       android:layout_toRightOf="@id/day" 
       android:text="05/04/2017" 
       android:textStyle="bold" 
       android:textSize="20dp" 
       android:gravity="left|center" 
       android:textColor="#000" 
       android:paddingLeft="3dp" 
       android:background="@android:color/transparent" 
       /> 

      <TextView 
       android:layout_width="95dp" 
       android:layout_height="29dp" 
       android:id="@+id/time" 
       android:layout_below="@id/line3" 
       android:layout_toRightOf="@+id/date" 
       android:text="12.00" 
       android:textColor="#000" 
       android:textSize="20dp" 
       android:paddingBottom="4dp" 
       android:background="@android:color/transparent" 
       /> 



    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:layout_marginTop="10dp" 
     > 
     <SearchView 
      android:layout_width="290dp" 
      android:layout_height="45dp" 
      android:id="@+id/search" 
      android:layout_marginTop="8dp" 
      android:layout_weight="1" 
      android:layout_marginLeft="30dp" 
      android:layout_marginRight="30dp" 

      android:queryHint="Search" 
      android:layout_gravity="center_horizontal" 
      android:layout_below="@+id/day" 
      android:layout_centerHorizontal="true"/> 

    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:layout_marginLeft="4dp" 
     android:layout_marginRight="4dp" 
     > 


      <TextView 
       android:layout_width="40dp" 
       android:layout_height="match_parent" 
       android:text="Sr" 
       android:id="@+id/sr" 
       android:paddingTop="5dp" 
       android:textSize="20dp" 
       android:layout_marginTop="7dp" 
       android:textStyle="bold" 
       android:textColor="#fff" 
       android:background="#b27ce7" 
       android:gravity="center" 
       /> 

     <TextView 
      android:layout_width="145dp" 
      android:layout_height="match_parent" 
      android:text="Player Name" 
      android:layout_toRightOf="@+id/sr" 
      android:id="@+id/player" 
      android:paddingTop="5dp" 
      android:layout_weight="1" 
      android:textSize="20dp" 
      android:layout_marginTop="7dp" 
      android:textStyle="bold" 
      android:textColor="#fff" 
      android:background="#b27ce7" 
      android:gravity="center" 
      /> 

     <TextView 
       android:layout_width="28dp" 
       android:layout_height="match_parent" 
       android:id="@+id/a" 
       android:layout_weight="0.12" 
       android:layout_marginTop="7dp" 
       android:layout_toRightOf="@+id/player" 
       android:background="#b27ce7" 

       /> 

     <TextView 
      android:layout_width="40dp" 
      android:layout_height="43dp" 
      android:layout_toRightOf="@+id/a" 
      android:id="@+id/rank" 
      android:text="Rank" 
      android:layout_marginTop="7dp" 
      android:textSize="20dp" 
      android:textStyle="bold" 
      android:paddingBottom="1dp" 
      android:textColor="#fff" 
      android:gravity="center" 
      android:background="#b27ce7" 
      android:layout_weight="1" /> 

     <TextView 
       android:layout_width="27dp" 
       android:layout_height="match_parent" 
       android:id="@+id/b" 
       android:layout_weight="0.12" 
       android:layout_marginTop="7dp" 
       android:layout_marginBottom="1dp" 
       android:layout_toRightOf="@+id/rank" 
       android:background="#b27ce7" 

       /> 

      <TextView 
       android:layout_width="40dp" 
       android:layout_height="match_parent" 
       android:background="#b27ce7" 
       android:layout_marginTop="7dp" 
       android:text="Team" 
       android:paddingTop="5dp" 
       android:layout_toRightOf="@+id/b" 
       android:textStyle="bold" 
       android:textColor="#fff" 
       android:textSize="20dp" 
       android:gravity="center" 
       /> 



    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     > 

     <ListView 
      android:layout_width="330dp" 
      android:layout_height="250dp" 
      android:id="@+id/pllist" 
      android:background="#ffff" 
      android:layout_weight="1" 
      android:scrollbars="vertical" 
      android:divider="@null" 
      android:layout_marginLeft="4dp" 
      android:layout_marginRight="4dp" 
      android:dividerHeight="0dp" 
      android:footerDividersEnabled="false" 
      android:headerDividersEnabled="false" 
      android:layout_below="@+id/listline1" 

      /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="0" 
     android:layout_marginLeft="10dp" 
     android:layout_marginRight="10dp" 
     > 

     <Button 
      android:layout_width="match_parent" 
      android:layout_height="42dp" 
      android:id="@+id/update" 
      android:background="#4e57a9" 
      android:text="Update" 
      android:textColor="#000" 
      android:textSize="25dp" 
      android:layout_marginLeft="10dp" 
      android:layout_marginRight="10dp" 
      android:layout_marginBottom="10dp" 
      android:textAllCaps="false" 
      android:layout_above="@+id/delete" 
      /> 
    </LinearLayout> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="0" 
     android:layout_marginLeft="10dp" 
     android:layout_marginRight="10dp" 

     > 

     <Button 
      android:layout_width="match_parent" 
      android:layout_height="42dp" 
      android:layout_alignParentBottom="true" 
      android:id="@+id/delete" 
      android:layout_centerHorizontal="true" 
      android:background="#4e57a9" 
      android:text="Delete" 
      android:textColor="#000" 

      android:layout_marginBottom="15dp" 
      android:textSize="25dp" 
      android:layout_marginLeft="10dp" 
      android:layout_marginRight="10dp" 
      android:textAllCaps="false" 

      /> 

    </LinearLayout> 

</LinearLayout> 
+0

我不知道是否有可能有相同的布局,看起来是一样的每一个Android设备上那里。我可以给你的最好建议是仔细计划你的布局类型。例如,你可以尝试'ConstraintLayout'。此外,为了支持不同的尺寸,您可以创建具有最小宽度限定符的不同布局,例如'sw600dp'和'sw720dp'。另外,看看这个https://android-developers.googleblog.com/2011/07/new-tools-for-managing-screen-sizes.html它可能会帮助你。 – jlively

回答

0

我想你探微必须定义的高度和宽度你主线性布局。 像这样

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="100dip" 
android:layout_height="200dip" 
android:weightSum="6" 
> 
0

幸运的是,这是一个容易的事作为Android的主要是需要照顾它。您只需为每个您希望支持的不同屏幕尺寸制作不同的布局文件。

重要的部分是将它们命名为相同的(example.xml),但将它们放在不同的文件夹中,并使用特定标签标识android应用程序。例如res/values/example.xml vs res/values-sw600dp-land/example.xml其中sw600dp和land是限定符,用于识别最小宽度和横向。你可以在这里读更多关于它的内容。 https://developer.android.com/training/multiscreen/screensizes.html

+0

您是指5个基本屏幕尺寸的xml副本?单次更换并每次交叉检查5个文件? –

+0

对不起,我不确定你的意思。如果我们只是谈论在具有不同显示器(不同大小,不同密度,不同长宽比)的设备上显示的相同布局,那么您所需做的就是适当命名文件,android会自动选择合适的作业。您无需检查任何内容或手动设置布局。 – Stephen

+0

假设我希望我的应用支持10种类型的屏幕。我按照你的步骤做了10个不同的文件夹。现在我需要添加文本视图。我必须根据它的属性在10个不同的xml布局中手动添加这个textview。你不觉得这不是一个好主意吗? –

0

未将固定的高度和宽度分配给widget.use layout_weight属性并设置所有小部件。

以其它方式使用

res/layout/my_layout.xml    // layout for normal screen size ("default") 
res/layout-large/my_layout.xml  // layout for large screen size 
res/layout-xlarge/my_layout.xml  // layout for extra-large screen size 
res/layout-xlarge-land/my_layout.xml // layout for extra-large in landscape orientation 

res/drawable-mdpi/graphic.png   // bitmap for medium-density 
res/drawable-hdpi/graphic.png   // bitmap for high-density 
res/drawable-xhdpi/graphic.png  // bitmap for extra-high-density 
res/drawable-xxhdpi/graphic.png  // bitmap for extra-extra-high-density 

res/mipmap-mdpi/my_icon.png   // launcher icon for medium-density 
res/mipmap-hdpi/my_icon.png   // launcher icon for high-density 
res/mipmap-xhdpi/my_icon.png  // launcher icon for extra-high-density 
res/mipmap-xxhdpi/my_icon.png  // launcher icon for extra-extra-high-density 
res/mipmap-xxxhdpi/my_icon.png  // launcher icon for extra-extra-extra-high-density