【问题标题】:Develop layout for both 320dp and 360dp within RelativeLayout?在 RelativeLayout 中为 320dp 和 360dp 开发布局?
【发布时间】:2012-06-19 23:53:47
【问题描述】:

正如我在这里发布的 how-can-i-create-layout-for-both-320dp-and-360dp。在那个问题中,我举了一个关于两个按钮的简单示例。但是现在我已经有了 320dp 的布局,但我无法像 Motorola Atrix 那样创建 360dp 的布局。因为给出的解决方案与 LinearLayout 相关,而我的布局现在是相对的。如何避免或填补右边的空白?

layout.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@drawable/bg_tapfast" >

    <ImageView 
        android:id="@+id/img_logomaior"
        android:layout_width="@dimen/default_width_img_logomaior"
        android:layout_height="@dimen/default_height_img_logomaior"
        android:src="@drawable/img_logomaior"
        android:layout_marginTop="@dimen/margin_top_img_logomaior"
        android:layout_marginLeft="@dimen/margin_left_img_logomaior"
        android:layout_alignParentLeft="true" />    

    <ImageView 
        android:id="@+id/img_mode_tapcolor"
        android:layout_width="@dimen/default_width_mode_tapcolor"
        android:layout_height="@dimen/default_height_mode_tapcolor"
        android:src="@drawable/mode_tapcolor"
        android:layout_marginTop="@dimen/margin_top_mode_tapcolor"
        android:layout_marginLeft="@dimen/margin_left_mode_tapcolor" />     

    <ImageView 
        android:id="@+id/img_mode_tapname"
        android:layout_width="@dimen/default_width_mode_tapname"
        android:layout_height="@dimen/default_height_mode_tapname"
        android:src="@drawable/mode_tapname"
        android:layout_marginTop="@dimen/margin_top_mode_tapname"
        android:layout_marginLeft="@dimen/margin_left_mode_tapname" />       

     <ImageView 
        android:id="@+id/img_mode_tapgroup"
        android:layout_width="@dimen/default_width_mode_tapgroup"
        android:layout_height="@dimen/default_height_mode_tapgroup"
        android:src="@drawable/mode_tapgroup"
        android:layout_marginTop="@dimen/margin_top_mode_tapgroup"
        android:layout_marginLeft="@dimen/margin_left_mode_tapgroup" />     

     <ImageView 
        android:id="@+id/img_tap_2be"
        android:layout_width="@dimen/default_width_tap_2be"
        android:layout_height="@dimen/default_width_tap_2be"
        android:src="@drawable/tap_2be"
        android:layout_alignParentBottom="true"
        android:layout_marginLeft="@dimen/margin_left_tap_2be" />

     <ImageView 
        android:id="@+id/img_bt_howtoplay"
        android:layout_width="@dimen/default_width_bt_howtoplay"
        android:layout_height="@dimen/default_height_bt_howtoplay"      
        android:src="@drawable/bt_howtoplay"        
        android:layout_alignParentRight="true"
        android:layout_alignParentBottom="true" />

</RelativeLayout>

摩托罗拉 Atrix

三星 Galaxy SII

【问题讨论】:

    标签: android android-layout android-relativelayout


    【解决方案1】:

    【讨论】:

    • 不,我的问题是我怎么能定义一个 360dp 的布局,比如摩托罗拉 Atrix?
    【解决方案2】:

    您必须为我发布您的代码才能确定。

    但是您应该能够将这样的属性添加到您的 RelativeLayout:

    android:gravity="center_horizontal"
    

    编辑:我认为,如果您将 3 个 ImageViews 放在它们自己的布局中并将顶级父级上的重力设置为水平居中,它将使您的所有 ImageViews 保持在相同的相对位置彼此之间,但它也会将它们滑过一些,因此无论您在哪个设备上运行它们都会居中。

    类似这样的:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center_horizontal"
        android:background="@drawable/bg_tapfast" >
    
    
        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            >
        <ImageView 
            android:id="@+id/img_logomaior"
            android:layout_width="@dimen/default_width_img_logomaior"
            android:layout_height="@dimen/default_height_img_logomaior"
            android:src="@drawable/img_logomaior"
            android:layout_marginTop="@dimen/margin_top_img_logomaior"
            android:layout_marginLeft="@dimen/margin_left_img_logomaior"
            android:layout_alignParentLeft="true" />    
    
        <ImageView 
            android:id="@+id/img_mode_tapcolor"
            android:layout_width="@dimen/default_width_mode_tapcolor"
            android:layout_height="@dimen/default_height_mode_tapcolor"
            android:src="@drawable/mode_tapcolor"
            android:layout_marginTop="@dimen/margin_top_mode_tapcolor"
            android:layout_marginLeft="@dimen/margin_left_mode_tapcolor" />     
    
        <ImageView 
            android:id="@+id/img_mode_tapname"
            android:layout_width="@dimen/default_width_mode_tapname"
            android:layout_height="@dimen/default_height_mode_tapname"
            android:src="@drawable/mode_tapname"
            android:layout_marginTop="@dimen/margin_top_mode_tapname"
            android:layout_marginLeft="@dimen/margin_left_mode_tapname" />       
    
         <ImageView 
            android:id="@+id/img_mode_tapgroup"
            android:layout_width="@dimen/default_width_mode_tapgroup"
            android:layout_height="@dimen/default_height_mode_tapgroup"
            android:src="@drawable/mode_tapgroup"
            android:layout_marginTop="@dimen/margin_top_mode_tapgroup"
            android:layout_marginLeft="@dimen/margin_left_mode_tapgroup" />     
    
         <ImageView 
            android:id="@+id/img_tap_2be"
            android:layout_width="@dimen/default_width_tap_2be"
            android:layout_height="@dimen/default_width_tap_2be"
            android:src="@drawable/tap_2be"
            android:layout_alignParentBottom="true"
            android:layout_marginLeft="@dimen/margin_left_tap_2be" />
    
         <ImageView 
            android:id="@+id/img_bt_howtoplay"
            android:layout_width="@dimen/default_width_bt_howtoplay"
            android:layout_height="@dimen/default_height_bt_howtoplay"      
            android:src="@drawable/bt_howtoplay"        
            android:layout_alignParentRight="true"
            android:layout_alignParentBottom="true" />
    
    
         </RelativeLayout>
    
    </RelativeLayout>
    

    【讨论】:

    • 我认为这不是问题。因为我使用的是固定尺寸(dp)。只是为了证明我的问题,有 3 张图片。好的,看看我的 layout.xml
    • 我认为如果您将 3 张图像放在它们自己的子布局中,您可以使用中心水平重力将它们滑到中间。查看我的编辑。
    猜你喜欢
    • 2012-06-21
    • 2017-03-11
    • 1970-01-01
    • 1970-01-01
    • 2018-07-03
    • 2011-10-26
    • 2017-12-31
    • 2015-09-29
    • 2014-08-25
    相关资源
    最近更新 更多