Android学习路线(十八)支持不同设备——支持不同的屏幕

Android系统使用两个普通属性:尺寸和密度,来对设备屏幕进行分类。你需要先预测你的应用将会在什么样屏幕的设备上安装,包括屏幕尺寸和密度。这样的话,你就需要提供一些可选的资源类让你的应用在不同屏幕的设备上有最佳的展示。

  • 有四种普遍的尺寸:small, normal, large, xlarge
  • 还有四种普遍的密度:low (ldpi), medium (mdpi), high (hdpi), extra high (xhdpi)

要为不同的屏幕声明不同的布局和图片,你需要让这些可选的资源放在不同的目录下,这和如何支持多语言的做法类似。

同样要考虑到在不同屏幕尺寸下的屏幕方向配置,因此很多应用通在不同的方向上改变不同的布局来实现最佳的用户体验。

创建不同的布局


让你的应用在不同的屏幕尺寸上有好的用户体验,你应该为每个你想支持的屏幕尺寸创建一个唯一的XML布局文件。每个布局文件应该被存放到适当的资源目录下,目录名以 -<screen_size> 为后缀。例如,一个存放大屏幕的布局目录的名称是res/layout-large/

提示: Android系统会自动伸缩布局来正确的适配屏幕。因此,你不需要担心你为不同布局设计的UI元素的实际尺寸,你要注意的是影响用户体验的布局结构(例如重要布局相对与它旁边布局的尺寸和位置)。

例如,这个项目包括一个默认的布局目录以及是用于大屏幕的布局目录:

MyProject/
    res/
        layout/
            main.xml
        layout-large/
            main.xml

文件名一定要完全相同,但是它们的内容要不一样,用来为不同的屏幕尺寸提供最佳的UI展示。

在应用中简单地引用布局:

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

系统会根据设备的屏幕尺寸加来适当的布局目录下的布局文件。更多关于选取适当布局资源的信息,请参阅Providing Resources 引导。

另一个例子,下面是项目横屏的可选资源:

MyProject/
    res/
        layout/
            main.xml
        layout-land/
            main.xml

默认情况下,layout/main.xml 文件是被竖屏使用的。

如果你想要为你的应用指定横屏时的布局,包括在大屏幕的设备上,那么你需要同时使用large 和land 限制:

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

提示: Android 3.2 以及更高的系统提供了定义屏幕尺寸的高级方法,它允许您根据密度无关的像素方面的最小宽度和高度,以指定的屏幕尺寸的资源。这篇课程不包含这项新技术。更多信息,请参阅Designing for Multiple Screens

创建不同的图片


你应该为每个通用密度的设备提供能够正确缩放的图片资源:low, medium, high and extra-high 密度。这能帮助你在所有屏幕密度的设备上获得更高的图片质量以及更好的性能。

要生成这些图片,你首先需要使用下面的尺寸规模为你的原生资源的矢量资源为不同的屏幕密度生成图片:

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

这表示如果你为xhdpi的设备生成一个200x200 的图片,你就应该为hdpi的设备生成150x150 的相同资源,mdpi设备100x100,ldpi设备75x75。

然后将这些文件放在适当的drawable资源目录下:

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

你每次引用@drawable/awesomeimage的时候,系统都会根据屏幕密度选择适当的图片。

提示: 低分辨率(ldpi) 资源并不是必要的。当你提供了hdpi的资源时,系统会将资源缩小一半来正确的适应ldpi的屏幕。

更多关于为应用创建icon资源的向导,请参阅Iconography design guide

内容概要:本文介绍了一个基于单调广义学习系统(MBLS)和Copula理论的时空概率预测模型,用于光伏功率预测,结合Matlab代码实现。该模型充分考虑光伏发电的不确定性与时空相关性,利用MBLS提升预测精度与学习效率,并通过Copula函数刻画多个光伏站点间预测误差的非线性相关结构,实现高精度的概率区间预测。文档还列举了大量相关的科研方向与Matlab仿真应用案例,涵盖风电预测、负荷预测、综合能源系统优化、路径规划、电力系统分析等多个领域,展示了其在可再生能源预测与智能系统优化中的广泛应用前景。; 适合人群:具备一定Matlab编程基础,从事可再生能源预测、电力系统优【Copula光伏功率预测】基于单调广义学习系统(MBLS)和Copula理论的时空概率预测模型(Matlab代码实现)化、智能算法应用等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:① 提升光伏功率预测的准确性与可靠性,尤其适用于多站点协同预测场景;② 掌握MBLS与Copula理论在时空相关性建模中的融合方法,构建概率预测框架;③ 借助Matlab代码实现,开展学术复现、科研创新或实际工程项目开发。; 阅读建议:建议结合文中提供的Matlab代码进行实践操作,重点理解MBLS的建模流程与Copula函数在相关性分析中的具体应用,同时可参考文档列出的相关研究方向拓展应用场景。
内容概要:本文围绕“并_离网风光互补制氢合成氨系统”的容量规划与调度优化问题展开,重点采用Cplex求解器结合Matlab代码实现对系统进行建模与优化分析。文章复现了相关科研论文中的方法,构建了综合考虑风能、光伏、电解水制氢及合成氨生产的多能源耦合系统模型,旨在优化系统容量配置与运行调度,提升可再生能源利用率与系统经济性。文中详细展示了数学建模过程、约束条件设定、目标函数设计以及Cpl【复现】并_离网风光互补制氢合成氨系统容量-调度优化分析【Cplex求解】(Matlab代码实现)ex在Matlab环境下的调用实现方式,涵盖了从数据输入到结果输出的完整流程,并提供了可供学习和二次开发的代码资源。; 适合人群:具备一定电力系统、能源系统或运筹优化背景,熟悉Matlab编程,有一定数学建模基础的研究生、科研人员或工程技术人员,尤其适合从事新能源系统规划与优化方向的研究者; 使用场景及目标:① 学习并掌握风光互补制氢合成氨系统的集成建模方法;② 理解并应用Cplex求解器解决能源系统优化问题;③ 复现高水平论文中的优化模型,用于科研验证或项目开发;④ 开展离网/并网能源系统容量配置与调度策略研究; 阅读建议:建议结合提供的Matlab代码逐模块分析,重点关注目标函数与约束条件的数学表达与程序实现对应关系,同时利用所提供的网盘资源获取完整代码与测试数据,动手调试与修改参数以加深理解,推荐配合YALMIP工具箱使用以提升建模效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值