java - 我应该从layout_weight转向dip吗?

标签 java android xml android-layout layout

我创建了一个小部件。我故意使用了 layout_weight

因此它适合任何屏幕尺寸。

小部件的跨度始终为 1X4。

我现在在图形编辑器中查看不同的设备,发现重量没有帮助。

我应该转向浸没尺寸吗?

线性布局相对于背景图像的跨度不同。

enter image description here

enter image description here

enter image description here

我的 XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/app_widget_root"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/widget_bg_main"
    android:clickable="true"
    android:focusable="true"
    android:gravity="center_vertical"
    android:orientation="horizontal"
    android:padding="0dp" >

    <RelativeLayout
        android:id="@+id/layout_status_image"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_gravity="center"
        android:gravity="center"
        android:orientation="horizontal" 
android:layout_weight="0.21"
>

        <ImageView
            android:id="@+id/image_status"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:src="@drawable/widget_icon_no_data"
            android:visibility="invisible" />
        <!--
                              Layout is necessary because the setVisibility of ProgressBar is not working 
                              through remote views in 2.1. So wrapped by this layout 
        -->

        <FrameLayout
            android:id="@+android:id/widget_progress"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:layout_marginLeft="1dp"
            android:layout_marginTop="1dp" >

            <ProgressBar
                style="?android:attr/progressBarStyle"
                android:layout_width="39dp"
                android:layout_height="39dp"
                android:indeterminateOnly="true"
                android:orientation="vertical" />
        </FrameLayout>
    </RelativeLayout> <!-- Status image layout -->


    <!--
                            ========================================================================
                            * Information layout - contains all the texts 
                            ========================================================================
    -->

    <LinearLayout
        android:id="@+id/layout_information"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:gravity="center"
        android:orientation="vertical" 
        android:paddingLeft="20dp"
        android:layout_weight="0.56"
        >

        <TextView
            android:id="@+id/text_view_destination"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="\@ Home in"
            android:textColor="@color/solid_white"
            android:textSize="19sp"
            android:textStyle="bold" 
            android:layout_gravity="left" 

            />

        <TextView
            android:id="@+id/text_view_time"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:textColor="@color/solid_white"
            android:textSize="25sp"
            android:textStyle="normal" 
            android:layout_gravity="left"
            />
    </LinearLayout> <!-- Information layout -->
    <!--
                            ========================================================================
                            * Action layout - action buttons container
                            ========================================================================
    -->

    <LinearLayout
        android:id="@+id/layout_action"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_gravity="center"
        android:gravity="center"
        android:orientation="vertical" 
        android:layout_weight="0.23"
        >

        <ImageView
            android:id="@+id/image_action"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:src="@drawable/widget_bt_drive_disabled" />

        <TextView
            android:id="@+id/text_view_action"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="2dp"
            android:text="Drive!"
            android:textColor="@color/disabled_white"
            android:textSize="15sp"
            android:textStyle="bold" 
            android:layout_gravity="center"
            />
    </LinearLayout> <!-- Action layout -->

最佳答案

很明显,因为在普通屏幕尺寸的设备上完美运行的单一布局并不意味着它在大/超大尺寸的屏幕上也能以相同的方式运行。因此,在 res“layout-large”或“layout-xlarge”(取决于设备屏幕尺寸)内创建一个文件夹。将相同的布局复制到新创建的文件夹中,然后对其进行一些更改,以便根据您的要求适合大/超大屏幕。您还可以将图像复制到 ldpi、mdpi、hdpi 和 xhdpi 以支持多种密度。

了解更多信息:http://developer.android.com/guide/practices/screens_support.html

希望这有帮助。

关于java - 我应该从layout_weight转向dip吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17922486/

相关文章:

java - 显示 Moskito-central 收集的统计数据

android - 单击通知后返回当前正在运行的 Activity

JavaScript——这个单选按钮被选中了吗?

Java 3-SUM 代码表现异常

java - 如果将 SharedPreferences 放在那里,代码将不起作用

java - 使用 ContentResolver 更新联系人组时更新不起作用

java - 其他 Activity 的标题

java - Springs3 Hibernate3注解配置

c# - 尽管有 XmlNamespaceManager,XPathNavigator 还是找不到节点

java - Ubuntu14.04 html 上的 Tomcat7 有效,但 servlet 出现 404 错误