【问题标题】:How can i made the layout that will work in both Tablet and phone?如何制作适用于平板电脑和手机的布局?
【发布时间】:2013-06-25 19:29:46
【问题描述】:

我从 xml 用模拟器大小的平板电脑布局制作了布局。但是,当在 android 手机设备上以相同的布局打开时,一切都会扭曲,所以我可以制作一个在设备手机和平板电脑上都可以正常工作的 xml 布局。请建议我,感谢您的回答。

【问题讨论】:

标签: android layout tablet


【解决方案1】:

为移动设备或平板电脑制作两个单独的布局,只需按照默认布局设计并点击orientation for preview,然后点击create tablet变体。之后会看到标签和移动的两种布局,这是最简单的。

【讨论】:

    【解决方案2】:

    使用表格和权重在手机上创建与平板电脑相同或相似的纵横比。作为最后的手段,我只会创建不同的布局。

    <TableRow
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight=".33" >
                 //Note: You will need some other TableRows fill in the difference of this Table Row..2 more of the same will equal 1.
            <TextView
                android:id="@+id/x"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_marginLeft="3dp"
                android:layout_weight=".33"
                android:background="@drawable/buttonx"
                android:gravity="center"
                android:text="Words"
                android:textColor="#ffffff"
                android:textSize="16sp"
                android:textStyle="bold" />
    
            <TextView
                android:id="@+id/x2"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_marginLeft="3dp"
                android:layout_weight=".33"
                android:background="@drawable/buttonx2"
                android:gravity="center"
                android:text="Other Words"
                android:textColor="#ffffff"
                android:textSize="16sp"
                android:textStyle="bold" />
    
            <TextView
                android:id="@+id/x3"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_marginLeft="3dp"
                android:layout_weight=".33"
                android:background="@drawable/buttonx3"
                android:gravity="center"
                android:text="More Words"
                android:textColor="#ffffff"
                android:textSize="16sp"
                android:textStyle="bold" />
    
        </TableRow>
    

    【讨论】:

    • 这会使布局中的内容占页面的百分比。因此,无论是在电视屏幕上还是在最小的设备上,纵横比都是一样的。
    【解决方案3】:

    像这样制作你的资源。

    res/layout/my_layout.xml // 正常屏幕尺寸的布局(“默认”)

    res/layout-small/my_layout.xml // 小屏幕布局

    res/layout-large/my_layout.xml // 大屏幕布局

    res/layout-xlarge/my_layout.xml // 超大屏幕尺寸的布局

    res/layout-xlarge-land/my_layout.xml // 横向超大布局

    res/drawable-mdpi/my_icon.png // 中等密度的位图

    res/drawable-hdpi/my_icon.png // 高密度位图

    res/drawable-xhdpi/my_icon.png // 超高密度位图

    更多referencereference1

    在你的 manifest.xml 中添加这个

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

    希望这会对你有所帮助。

    【讨论】:

    • 所有可绘制文件夹中的图像大小都相同吗?还是会在每个布局中放置不同大小的图像?
    • 你应该放置不同尺寸的图片。根据密度..因为小图像只适合小屏幕。但它不适合更大的屏幕,因为它看起来很小。所以我们是这样移动的。最好放不同尺寸的图片。
    • @Nirmal 嗨,我也用过这个,但没有得到解决方案。我的设备总是只显示正常布局。我已经添加了这个权限 'android:configChanges="orientation|keyboardHidden|screenSize|screenLayout" ' 这会影响任何事情。
    • 你用的是什么设备?
    • @Nirmal 三星笔记和索尼
    【解决方案4】:

    您可以为手机和标签创建两个单独的布局。您需要做的是为电话和选项卡创建一个带有“文件名”的布局文件,通过右键单击项目并选择新建> android xml布局文件>然后输入一个“文件名”,单击下一步并选择大小从右窗格并从下拉列表中选择 x-large。您的选项卡布局文件是单独创建的,因此请单独自定义您的布局。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-14
      • 1970-01-01
      • 1970-01-01
      • 2011-10-31
      • 1970-01-01
      相关资源
      最近更新 更多