支持多屏幕

来源:互联网 发布:丽得姿黑面膜淘宝 编辑:程序博客网 时间:2024/04/30 08:14

支持多屏幕

有四种屏幕大小: small, normal, large, xlarge

对应四种密度: low (ldpi), medium (mdpi), high (hdpi), extra high (xhdpi)

还需要考虑到屏幕方向:横向、竖向

一、创建不同布局

例如,这个项目包含默认的布局和一个大的布局

<span style="font-size:18px;">MyProject/    res/        layout/            main.xml        layout-large/            main.xml</span>


文件名称必须一致,不同的内容适配不同的屏幕。

然后在你的程序中简单的引用布局文件即可:


@Override protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.main);}

再比如下面的包含水平布局的例子:

<span style="font-size:18px;"><span style="font-size:18px;">MyProject/    res/        layout/            main.xml        layout-land/            main.xml</span></span>

默认的layout/main.xml 是用来适配竖向屏幕。

如果你还想提供大屏幕的水平布局,你就得同时用 large和 land 

<span style="font-size:18px;"><span style="font-size:18px;">MyProject/    res/        layout/              # default (portrait)            main.xml        layout-land/         # landscape            main.xml        layout-large/        # large (portrait)            main.xml        layout-large-land/   # large landscape            main.xml</span></span>


二、创建不同位图

你总应该提供不同位图资源并能够缩放至任意密度:low,medium,high,extra-high density.这样能底帮助你获得好的图片质量和表现在所有的屏幕密度下。

为了生成这些图片,你应该用矢量图和生成不同的密度用如下的尺寸比例:

  • xhdpi: 2.0
  • hdpi: 1.5
  • mdpi: 1.0 (baseline)
  • ldpi: 0.75

这意味着,如果你为xhdpi设备生成一张200*200的图片,同时在hdpi下生成150*150,在mdpi下100*100,ldpi下75*75.

然后将这些文件放置对应的目录下:


MyProject/    res/        drawable-xhdpi/            awesomeimage.png        drawable-hdpi/            awesomeimage.png        drawable-mdpi/            awesomeimage.png        drawable-ldpi/            awesomeimage.png

任何时候你引用 @drawable/awesomeimage,系统会自动选择适应屏幕的图片。




For more tips and guidelines about creating icon assets for your app, see the Iconography design guide.


0 0
原创粉丝点击