Android设计支持多种屏幕

时间:2015-12-01 04:36:42

标签: android android-layout

我知道有很多关于我的问题的资料。但我仍然困惑如何设计Android应用程序,以支持不同大小的屏幕。

大多数情况下,当我设计网页时,我会使用百分比来支持不同大小的屏幕。但是正如你所知,在android中,为了做到这一点,我必须使用Java代码实时制作UI(读取宽度和高度,并根据屏幕大小调整所有视图的大小),因为使用XML,你不能这样做。但这似乎不对。

我有图像文件(PNG,JPG),我将这些文件作为ImageView和scaleType排列为“fitXY”,并将宽度设置为DP。我知道“dp”单元会使这个元素始终具有相同的实际大小,因此人们将它用于小部件。因此,我将此图像放在xxxhdpi屏幕中,当我在xhdpi屏幕中看到时,图像非常大,以至于图像被剪切掉了。

我想要的很简单。我想将View元素排列为百分比宽度,以便在不同的屏幕中布局非常相似(不同的高度比率将通过滚动解决?)。但我不知道怎么...... ????不仅仅是百分之..我只是想知道生成图像文件和为不同屏幕安排小部件的正常过程......

我应该为不同的屏幕制作许多图像文件并将它们放在res / drawable-xxxxx中吗?如果我这样做,android系统会自动为不同的屏幕使用不同的文件吗?或者,我是否应该一直为每个不同的屏幕制作许多布局(这看起来很愚蠢......)?

有人可以指导我吗?...我一直在寻找这个答案超过1周。请...

1 个答案:

答案 0 :(得分:2)

您可以创建不同的布局文件夹,并为标准屏幕尺寸创建布局。有一组六个广义密度:

ldpi (low) ~120dpi
mdpi (medium) ~160dpi
hdpi (high) ~240dpi
xhdpi (extra-high) ~320dpi
xxhdpi (extra-extra-high) ~480dpi
xxxhdpi (extra-extra-extra-high) ~640dpi

您可以为这些创建图像和布局并相应地使用。在您显示的内容中:

<compatible-screens>
    <screen
        android:screenDensity="ldpi"
        android:screenSize="small" />
    <screen
        android:screenDensity="mdpi"
        android:screenSize="normal" />
    <screen
        android:screenDensity="xhdpi"
        android:screenSize="large" />
    <screen
        android:screenDensity="xhdpi"
        android:screenSize="xlarge" />        
</compatible-screens> 

有关详细信息,请参阅Supporting Multiple Screens

相关问题