【问题标题】:Whats the best way to build for multiple screen sizes?为多种屏幕尺寸构建的最佳方式是什么?
【发布时间】:2012-12-18 11:17:24
【问题描述】:

我现在正在构建一个应用,我希望它能够在多种屏幕尺寸(手机、7 英寸平板电脑和 10 英寸平板电脑)上正常工作。我查看了有关支持多个屏幕的文档,但仍有一些问题。

现在我有 5 个不同的布局文件夹,layout-:normal、large、xlarge、sw600dp 和 sw720dp。这是为所有屏幕尺寸构建的最佳方式吗?

当我尝试优化每个布局时,说覆盖一些 3 和 4 英寸屏幕的正常尺寸时,我会遇到无法让我的布局在所有屏幕上看起来都正确的问题。 我做对了什么,我可以改变什么?

【问题讨论】:

    标签: android


    【解决方案1】:

    我相信你可以使用这个资源别名先生。

    假设您有两个不同的图像用于 sw320dp 和 sw600dp。

    • image1_sw320dp.png
    • image1_sw600dp.png

    将所有图片资源放入文件夹drawable。

    在文件夹values-sw320dp中,创建一个xml资源。 (也可能你需要 values-small,只需从 values-320dp 复制 xml)

    <resources>
        <item type="drawable" name="image1">@drawable/image1_sw320dp</item>
    </resources>
    

    在文件夹values-sw600dp中,创建一个xml资源。

    <resources>
        <item type="drawable" name="image1">@drawable/image1_sw600dp</item>
    </resources>
    

    然后在带有R.drawable.image1 的活动上使用。这样可以防止创建重复资源,例如 sw320dp、small 和 normal。

    【讨论】:

      【解决方案2】:

      Mr Rotary 有一个很好的方法来处理多种屏幕尺寸。 此外,您可以在应用程序中使用 Fragment。 您可以在这里学习如何使用片段:http://developer.android.com/guide/components/fragments.html

      【讨论】:

        【解决方案3】:

        我不相信有什么最好的方法,这只是你的方法。如果您打算使图像、按钮、文本视图更小或更大,您可以使用您使用的方法或 style.xml。

        Style.xml 示例:

        您将拥有一些文件夹,例如:

        • 价值观
        • 值-大
        • 值-正常
        • 值-小
        • 值-xlarge

        在文件夹中你有一个带有不同值的styles.xml:

        <style name="BigTextStyle">
            <item name="android:textSize">60dp</item>
        </style>
        
        <style name="SmallTextStyle">
            <item name="android:textSize">48dp</item>
        </style>
        
        <style name="ImageSize">
            <item name="android:layout_width">100dp</item>
            <item name="android:layout_height">100dp</item>
        </style>
        

        只需根据您正在使用的屏幕更改大小,然后在 layout.xml 中添加:

        <ImageView
            android:id="@+id/imageSD"
                    style="@style/ImageSize" />
        
                <TextView
            android:id="@+id/imageNameSD"
                    style="@style/BigTextStyle" />
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-05-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多