导航:首页 > 操作系统 > android两屏

android两屏

发布时间:2022-12-07 18:08:22

‘壹’ android-屏幕适配全攻略(绝对详细)(一)

关键字: 屏幕适配 px dp dpi sp large限定符 .9.png

前言: 这篇文章依然是我在 [慕课网 ][h]学习 凯子哥 的同名视频 Android-屏幕适配全攻略 ,所记录下来的笔记---凯子哥讲得真的超详细。
[h]: http://www.imooc.com/ "MOOC"

从上图可以看出,主流的分辨率是前六种:1280×720、1920×1080、800×480、854×480、960×540、1184×720,不过我们有解决方案。看完这篇文章,想必你就可以解决常见的屏幕适配问题。

接下来正式进入正题。

介绍几个在Android屏幕适配上非常重要的名词:

屏幕尺寸 是指屏幕对角线的长度。单位是英寸,1英寸=2.54厘米
屏幕分辨率 是指在横纵向上的像素点数,单位是px,1px=1像素点,一般是纵向像素横向像素,如1280×720
屏幕像素密度 是指每英寸上的像素点数,单位是dpi,即“dot per inch”的缩写,像素密度和屏幕尺寸和屏幕分辨率有关

dip: Density Independent Pixels(密度无关像素)的缩写。以 160dpi 为基准,1dp=1px
dp: dip
dpi: 屏幕像素密度的单位,“dot per inch”的缩写

px: 像素,物理上的绝对单位

sp: Scale-Independent Pixels的缩写,可以根据文字大小首选项自动进行缩放。Google推荐我们使用12sp以上的大小,通常可以使用12sp,14sp,18sp,22sp,最好不要使用奇数和小数。

用于区分不同的像素密度。

在Google官方开发文档中,说明了 ** mdpi:hdpi:xhdpi:xxhdpi:xxxhdpi=2:3:4:6:8 ** 的尺寸比例进行缩放。例如,一个图标的大小为48×48dp,表示在mdpi上,实际大小为48×48px,在hdpi像素密度上,实际尺寸为mdpi上的1.5倍,即72×72px,以此类推。

我们可以通过以下几种方式来支持各种屏幕尺寸:

wrap_content: 根据控件的内容设置控件的尺寸
math_parent: 根据父控件的尺寸大小设置控件的尺寸
weight: 权重,在线性布局中可以使用weight属性设置控件所占的比例

例如,我们要实现下图所显示的效果:当屏幕尺寸改变时,new reader控件两边的控件大小不变,new reader控件会占完剩余的空间。

具体布局文件如下:

小插曲: 关于 android:layout_weight 属性

一般情况,我们都是设置要进行比例分配的方向的宽度为0dp,然后再用权重进行分配。如下:

效果为:

效果为:

button1宽度=L+(L-2L)×1/3=2/3L
button2宽度=L+(L-2L)×2/3=1/3L

当然,还有其他的方式,都可以运用此公式进行计算。
在实际开发中,我们一般使用0dp的方式,而不使用其他方式。

简单的布局一般都使用 线性布局 ,而略微复杂点的布局,我们使用 相对布局 ,大多数时候,我们都是使用这两种布局的嵌套。

我们使用 相对布局 的原因是, 相对布局 能在各种尺寸的屏幕上保持控件间的相对位置。

res/layout/main.xml 单面板:

res/layout-large/main.xml 双面板:

如果这个程序运行在屏幕尺寸大于7inch的设备上,系统就会加载 res/layout-large/main.xml 而不是 res/layout/main.xml ,在小于7inch的设备上就会加载 res/layout/main.xml 。

需要注意的是,这种通过 large 限定符分辨屏幕尺寸的方法,适用于android3.2之前。在android3.2之后,为了更精确地分辨屏幕尺寸大小,Google推出了最小宽度限定符。

res/layout-sw600dp/main.xml ,双面板布局: Small Width 最小宽度

这种方式是不区分屏幕方向的。这种最小宽度限定符适用于android3.2之后,所以如果要适配android全部的版本,就要使用 large 限定符和 sw600dp 文件同时存在于项目 res 目录下。

这就要求我们维护两个相同功能的文件。为了避免繁琐操作,我们就要使用布局别名。

由于后两个文具文件一样,我们可以用以下两个文件代替上面三个布局文件:

res/layout/main.xml 单面板布局
res/layout/main_twopanes.xml 双面板布局

然后在 res 下建立
res/values/layout.xml 、
res/values-large/layout.xml 、
res/values-sw600dp/layout.xml 三个文件。

默认布局
res/values/layout.xml :

Android3.2之前的平板布局
res/values-large/layout.xml :

Android3.2之后的平板布局
res/values-sw600dp/layout.xml :

这样就有了 main 为别名的布局。
在activity中 setContentView(R.layout.main);

这样,程序在运行时,就会检测手机的屏幕大小,如果是平板设备就会加载 res/layout/main_twopanes.xml ,如果是手机设备,就会加载 res/layout/main.xml 。我们就解决了只使用一个布局文件来适配android3.2前后的所有平板设备。

如果我们要求给横屏、竖屏显示的布局不一样。就可以使用 屏幕方向限定符 来实现。
例如,要在平板上实现横竖屏显示不用的布局,可以用以下方式实现。
res/values-sw600dp-land/layouts.xml :横屏

res/values-sw600dp-port/layouts.xml :竖屏

自动拉伸位图,即android下特有的 .9.png 图片格式。

当我们需要使图片在拉伸后还能保持一定的显示效果,比如,不能使图片中的重要像素拉伸,不能使内容区域受到拉伸的影响,我们就可以使用 .9.png 图来实现。

要使用 .9.png ,必须先得创建 .9.png 图片,androidSDK给我们提供了的工具就包含 .9.png 文件的创建和修改工具。双击 SDK安装目录 oolsdraw9patch.bat ,就会打开下图所示的窗口。

下面是一个例子:

Button属性设置:

如果我们选择的内容区域偏差太大,可能就不会显示出text值 BUTTON 。

好了,这篇文章写的有点多了,剩下的内容放在 下篇文章 记录吧。
内容提要:
解决方案-支持各种屏幕密度
解决方案-实施自适应用户界面流程

未完待续

‘贰’ 在Qt for android 中,怎么实现双屏异显,也就是两个屏幕,显示不同的内容

大兄弟,解决没有,能否告知一下

‘叁’ 安卓怎么分屏双开

如果您使用的是华为手机,以华为Mate 40手机为例:
一、开启分屏:
1、打开某个应用后,在手机屏幕左侧或右侧,从外向内滑动屏幕并停顿,调出智慧多窗应用栏。

2、长按并拖拽应用栏中的应用图标至屏幕,开启分屏。
二、分屏互换:
长按分屏窗口顶部的横条至分屏窗口缩小后,拖拽该窗口至另外一个分屏窗口。
三、退出分屏:
按住分屏中间线上的横条或竖条拖动直至另外一个窗口消失。
部分应用不支持分屏显示。
同一时间只能使用两个分屏应用。
四、在分屏应用间快速拖拽
打开分屏应用后,可以直接在应用间拖拽图片、文字或文档。
1、拖拽图片:例如,在编辑备忘录时,同时打开文件管理并选中一张图片,可将其拖拽至备忘录编辑页面。
2、拖拽文字:例如,在发送信息时,同时打开备忘录长按并标选中需要文字,再次长按可将其拖拽至微信中。
3、拖拽文档:例如,在编辑电子邮件时,同时打开文件管理选中一篇文档,可将其拖拽至电子邮件。
部分应用不支持应用间拖拽。
五、添加、移动或移除分屏应用
1、添加应用:调出智慧多窗应用栏,点击加号,点击要添加的应用,点击完成。

2、移动应用:调出智慧多窗应用栏,点击加号,在应用栏中长按应用图标并拖拽,可将其移动到应用栏任一位置,点击完成。
3、移除应用:调出智慧多窗应用栏,点击加号,在应用栏中点击应用图标右上角的减号移除应用,点击完成。
六、分屏与悬浮窗相互切换
1、分屏切换为悬浮窗:手机竖屏时,长按分屏窗口顶部横条向左或向右滑动可切换为悬浮窗;手机横屏时,长按分屏窗口顶部横条向下滑动可切换为悬浮窗。
2、悬浮窗切换为分屏:手机竖屏时,长按悬浮窗顶部横条向上或向下拖动切换至分屏;手机横屏时,长按悬浮窗顶部横条向左或向右拖动切换至分屏。
七、打开单个应用的多窗口
您可以打开单个应用(如:邮件、备忘录)的多个任务窗口,在多个任务窗口间拖拽图片、文字或文档。
部分应用程序不支持此功能,请以实际情况为准。
1、分屏打开单个应用的多任务窗口。
打开邮件应用的一个任务窗口。
在手机屏幕左侧或右侧,从外向内滑动屏幕并停顿,调出智慧多窗应用栏。
长按并拖拽应用栏中的邮件应用图标至屏幕,分屏开启邮件应用的多任务窗口。
2、在单个应用的多任务窗口间快速拖拽。
拖拽图片:从一个邮件任务窗口选中一张图片,可将其拖拽至另一个邮件任务窗口中。
拖拽文字:从一个邮件任务窗口长按并标选中需要文字,再次长按可将其拖拽至另一个邮件任务窗口中。
拖拽文档:从一个邮件任务窗口选中一个文档,可将其拖拽至另一个邮件任务窗口中。
八、关闭智慧多窗
智慧多窗功能默认开启,若您想要关闭:
进入设置 > 辅助功能 > 智慧多窗 ,关闭智慧多窗应用栏。

‘肆’ 两部安卓手机如何实现同屏

可以用乐播投屏来达成,a手机安装乐播投屏手机版,b手机安装乐播投屏tv版,然后按提示连接就行了(需处于同一网络下,网络良好),连接成功后a手机的画面将实时同步在b手机上。

‘伍’ 安卓手机怎么分屏

您好,分屏显示并不是所有安卓手机都可以实现的,这需要您手机的供应商对手机添加分屏显示的功能,和安卓系统是没有关系的,打个比方,三星手机的第一款带有分屏显示功能的手机是i9300,而且分屏显示也和您使用的一些app应用有关系,并不是所有的app应用都支持分屏显示

阅读全文

与android两屏相关的资料

热点内容
dvd光盘存储汉子算法 浏览:757
苹果邮件无法连接服务器地址 浏览:962
phpffmpeg转码 浏览:671
长沙好玩的解压项目 浏览:144
专属学情分析报告是什么app 浏览:564
php工程部署 浏览:833
android全屏透明 浏览:736
阿里云服务器已开通怎么办 浏览:803
光遇为什么登录时服务器已满 浏览:302
PDF分析 浏览:484
h3c光纤全工半全工设置命令 浏览:143
公司法pdf下载 浏览:381
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:349
风翼app为什么进不去了 浏览:778
im4java压缩图片 浏览:362
数据查询网站源码 浏览:150
伊克塞尔文档怎么进行加密 浏览:892
app转账是什么 浏览:163