0

我有一个布局问题,不知道如何解决。

我喜欢在屏幕上显示一个 webview 和 2 个按钮。我用一个包含 webview 的 LinearLayout 和另一个包含 2 个按钮的 linearlayout 来定义它。

到目前为止,这看起来非常好。由于较新的设备具有更大的屏幕尺寸,我的屏幕看起来很丑,因为我的按钮太小了。包含 2 个按钮的内部线性布局是用 layout_height="60px" 定义的,我想这是我的问题。

您将如何管理它以使其在任何设备上看起来都不错?是否有可能根据屏幕尺寸定义尺寸?或者我应该在运行时将内部线性布局的高度设置为 screenheigh 的一个因素?

做这个的最好方式是什么 ?

问候

屏幕截图显示我的按钮在高清屏幕上太小。

在此处输入图像描述

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:background="#FFFFFF"
android:id="@+id/textviewerlayout"
android:orientation="vertical">


<WebView 
        android:id="@+id/mywebview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
    android:layout_weight="2"
    />

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="60px"
android:layout_width="fill_parent"
android:background="#FFFFFF"
android:id="@+id/textviewerbuttonlayout"
android:orientation="horizontal">
 <Button
      android:id="@+id/vorher"
      android:layout_width="wrap_content"
      android:layout_height="fill_parent"
      android:layout_weight="0"
      android:text="" />
 <Button
      android:id="@+id/nachher"
      android:layout_width="wrap_content"
      android:layout_height="fill_parent"
      android:layout_weight="0"
      android:text="" />
</LinearLayout>
</LinearLayout>
4

3 回答 3

2

与其使用 px,不如使用 dp。这将使用基于屏幕尺寸和分辨率为每个设备计算的与密度无关的像素。在这里查看更多信息。由于高清屏幕使用更高密度的像素,因此您的按钮会由于其硬编码的像素大小而显得更小。使用 dp(或 dip)将使它们在多个设备上的大小大致相同。

于 2013-06-12T16:59:15.150 回答
1

就像 Jorgan 说的使用 dp 比使用 px。

看看这是不是正在寻找的东西:

<WebView
    android:id="@+id/mywebview"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="10" />

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/textviewerbuttonlayout"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:background="#FFFFFF"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/vorher"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:text="" />

    <Button
        android:id="@+id/nachher"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:text="" />
</LinearLayout>

使用重量来确定高度可以让它在任何尺寸下看起来都很好,但是如果你想为平板电脑或景观制作特定的布局,你应该在他们的文件夹中制作它。

于 2013-06-12T17:07:18.240 回答
0

http://developer.android.com/guide/practices/screens_support.html

检查主题最佳实践下的上述链接

以下是一份关于如何确保您的应用程序在不同屏幕上正确显示的快速清单:

  1. 在 XML 布局文件中指定尺寸时使用 wrap_content、fill_parent 或 dp 单位。

  2. 不要在应用程序代码中使用硬编码的像素值

您可以使用单个相对布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <WebView 
        android:id="@+id/mywebview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_above="@+id/button1"  
    />
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_marginLeft="67dp"
        android:text="Button" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_marginRight="57dp"
        android:text="Button" />

   </RelativeLayout>
于 2013-06-12T17:07:42.573 回答