屏幕自动适合android

时间:2013-09-11 13:26:50

标签: android screen

我已经为android编写了一个应用程序我希望它可以在不同屏幕尺寸的手机上工作。这是我的main.xml代码:

 <?xmlversion="1.0"encoding="utf-8"?>
  <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical">

 <AbsoluteLayout
 android:id="@+id/absoluteLayout1"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:layout_weight="1.11"
 android:background="@color/dRed">

<Button
 android:id="@+id/Button02"
android:layout_width="285dp"
android:layout_height="76dp"
android:layout_x="122dp"
android:layout_y="340dp"
android:background="@drawable/border"
android:text="Exit"
android:textColorHighlight="@color/white"
android:textSize="30dip"/>

<Button
android:id="@+id/Button01"
android:layout_width="285dp"
android:layout_height="76dp"
android:layout_x="122dp"
android:layout_y="250dp"
android:background="@drawable/border"
android:text="About!"
android:textColorHighlight="@color/white"
 android:textSize="30dip"/>

 <Button
 android:id="@+id/button1"
 android:layout_width="285dp"
 android:layout_height="76dp"
 android:layout_x="122dp"
 android:layout_y="159dp"
 android:background="@drawable/border"
 android:text="Play Game!"
 android:textColorHighlight="@color/white"
 android:textSize="30dip"/>

   <TextView
  android:id="@+id/textView1"
   android:layout_width="333dp"
   android:layout_height="93dp"
   android:layout_x="105dp"
   android:layout_y="26dp"
   android:text="Smily XO  !!!"
   android:textAppearance="?android:attr/textAppearanceLarge"
   android:textColor="@color/orange"
   android:textColorHighlight="@color/white"
   android:textSize="60dip"/>

 <ImageView
  android:id="@+id/imageView1"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_x="291dp"
  android:layout_y="26dp"
  android:src="@drawable/nice"/>

   </AbsoluteLayout>

  </LinearLayout>

它非常适合模拟器,但不适合手机的屏幕。 android中是否有任何命令可以自动适应不同的手机? 在这个链接 Androidmanifest.xml My Android App doesn't really fill the screen 我发现我应该添加以下代码,但我不确定在哪里写这个代码

android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true"/>

3 个答案:

答案 0 :(得分:0)

不推荐使用AbsoluteLayout,强烈建议不要使用。你应该改为使用 RelativeLayout或其他有效的布局。绝对布局不会对不同的屏幕尺寸和密度做出规定,因此不能自动适应不同的设备。

如果您希望线性布局的子视图在所有屏幕尺寸上占据一定的权重或比例,您还可以查看布局权重:layout_weightweightSum

答案 1 :(得分:0)

首先不要使用Absolute Layout,因为它已被弃用。您可以根据自己的选择/需要使用线性/相对布局。然后,为了获得所有屏幕分辨率的均匀外观,您必须查看此support multiple screens for android

您可以添加不同的布局文件夹,例如 layout-large layout-xlarge 等,然后将xml放在这些文件夹中。另外,使用wrap-content,match-parent比使用硬编码的高度和宽度更加优先。否则,您可能必须为位于不同位置的每个xml文件更改特定视图的高度/宽度 布局文件夹。

答案 2 :(得分:0)

在清单文件中,使用上面的应用程序标记代码

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

然后<AbsoluteLayout/>从android API完全弃用,

layout中使用resources文件夹用于小屏幕,

为横向广告创建layout-land文件夹,

如果是平板电脑和大屏幕 - >在参考资料中创建layout-large-hdpi文件夹,

将所有layout.xml文件复制到创建的文件夹中,它会自动调整,