位置: 编程技术 - 正文

关于android 开发屏幕适配的个人见解(基于android开发)

编辑:rootadmin
一、android 中各个单位的基本概念px

推荐整理分享关于android 开发屏幕适配的个人见解(基于android开发),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:基于android的开发环境,android开发相关技术,基于android开发,android开发范例实战宝典,android开发相关技术,基于android开发,基于android开发,android开发相关技术,内容如对您有帮助,希望把文章链接给更多的朋友!

是英文单词pixel的缩写,意为像素,屏幕上的点。我们通常所说的分辨率如X就是指的像素。

在设计领域中,像素是用来计算数码影像的最小单位。计算机中显示的图像并非连续的线条组成,而是由许多肉&#;看不见的小点组成。如果把影像放大数倍,会发现这些连续色调其实是由许多色彩相近的小点所组成,这些小点就是构成影像的最小单位“像素”。由于是最小的独立显示单位,px均为整数,不会出现0.5px的情况

in

表示英寸,是屏幕的物理尺寸。每英寸等于2.厘米。例如我们经常说的手机屏幕大小有,5(英)寸、4(英)寸就是指这个单位。这些尺寸是屏幕的对角线长度。如果手机的屏幕是4英寸,表示手机的屏幕(可视区域)对角线长度是4 X 2. = .厘米。

dpi

dpi是Dots Per Inch的缩写, 每英寸点数,即每英寸包含像素个数。比如X分辨率的手机,宽2英寸,高3英寸, 每英寸包含的像素点的数量为/2=dpi(横向)或/3=dpi(纵向),就是这部手机的dpi,横向和纵向的这个&#;都是相同的,原因是大部分手机屏幕使用正方形的像素点。

density

屏幕密度,density和dpi的关系为 density = dpi/

dp

也即dip,设备独立像素,device independent pixels的缩写,Android特有的单位,在屏幕密度dpi = 屏幕上,1dp = 1px。

sp

和dp很类&#;,一般用来设置字体大小,和dp的区别是它可以根据用户的字体大小偏好来缩放。

二、常见的解决办法

当新建一个android工程时 会出现以下几个drawable文件夹,它们分别对应不同的dpi

drawable-ldpi (dpi=, density=0.)

drawable-mdpi (dpi=, density=1)

drawable-hdpi (dpi=, density=1.5)

drawable-xhdpi (dpi=, density=2)

drawable-xxhdpi (dpi=, density=3)

市面上常见手机的分辨率

iphone分辨率

x 3:2

x 3:2

x :9

android主流分辨率

x 3:2 (主分辨率) 华为C

x 5:3 (主分辨率) HTC G

x 3:2 魅族MX

x 5:3 (主分辨率)google nexus4

x :9 (主分辨率)小米2s

x :9 (主分辨率) 三星 galaxys4

做高分辨率三套,同比缩小到相应分辨率

x :9

关于android 开发屏幕适配的个人见解(基于android开发)

x 5:3

x 3:2

分辨率对应DPI"HVGA mdpi" x

"WVGA hdpi " x"FWVGA hdpi " *"QHD hdpi " *"P xhdpi" *"P xxhdpi " *

常见的适配方法:为每种dpi都出一套图片资源(但是此方法为美工增加了工作量,同时增大了apk)

android 自动渲染:Android SDK会自动屏幕尺寸选择对应的资源文件进行渲染,如SDK检测到你手机dpi是的话会优先到drawable-mdpi文件夹下找对应的图片资源,注意只是优先,假设你手机dpi是,但是你只在xhpdi文件夹下有对应的图片资源文件,程序一样可以正常运行。所以理论上来说只需要提供一种规&#;的图片资源就ok了,如果只提供ldpi规&#;的图片,对于大分辨率的手机如果把图片放大就会不清晰,所以需要提供一套你需要支持的最大dpi的图片,这样即使用户的手机分辨率很小,这样图片缩小依然很清晰

自动渲染需要在AndroidManifest.xml设置在中Menifest中添加子元素

android:anyDensity="true"时,应用程序安装在不同密度的终端上时,程序会分别加载xxhdpi、xhdpi、hdpi、mdpi、ldpi文件夹中的资源。

相反,如果设为false,即使在文件夹下拥有相同资源,应用不会自动地去相应文件夹下寻找资源:

横屏竖屏目录区分

1) drawable

a) drawable-hdpi该图片即适用于横屏,也适用于竖屏;

b) drawable-land-hdpi,当屏幕为横屏,且为高密度时,加载此文件夹的资源;

c) drawable-port-hdpi,当屏幕为竖屏,且为高密度时,加载此文件夹中的资源。其他同理。

2) layout

在res目录下建立layout-port和layout-land两个目录,里面分别放置竖屏和横屏两种布局文件,以适应对横屏竖屏自动切换

多屏幕适配的4条黄金原则

1) 在layout文件中设置控件尺寸时应采用fill_parent、wrap_content、match_parent和dp;尽量使用match_parent而不是fill——parent

具体来说,设置view的属性android:layout_width和android:layout_height的&#;时,wrap_content,match_parent或dp比px更好,文字大小应该使用sp来定义。

2) 在程序的代码中不要出现具体的像素&#;,在dimens.xml中定义;

为了使代码简单,android内部使用pix为单位表示控件的尺寸,但这是基于当前屏幕基础上的。为了适应多种屏幕,android建议开发者不要使用具体的像素来表示控件尺寸。

3) 不使用AbsoluteLayout(android1.5已废弃) ,可以使用RelativeLayout替代;

4) 对不同的屏幕提供合适大小的图片。(屏弃)

不同大小屏幕用不同大小的图片,low:medium:high:extra-high图片大小的比例为3:4:6:8;举例来说,对于中等密度(medium)的屏幕你的图片像素大小为×,那么低密度(low)屏幕的图片大小应为×,高(high)的为×,extra-high为×

使用9-patch PNG图片

使用图片资源时,如果出现拉伸,因为图片处理的原因,会变形,导致界面走形。9-patch PNG图片也是一种标准的PGN图片,在原生PNG图片四周空出一个像素间隔,用来标识PNG图片中哪些部分可以拉伸、哪些不可以拉伸、背景上的边框位置等。

“上、左”定义可拉伸区域

“右、下”定义显示区域,如果用到完整填充的背景图,建议不要通过android:padding来设置边距,而是通过9-patch方式来定义。

Android SDK中提供了编辑9-Patch图片的工具,在tools目录下draw9patch.bat,能够立刻看到编辑后的拉伸效果,也可以直接用其他图片编辑工具编辑,但是看不到效果。

关于图片的制作:1、关于设计:设计图先定下一个要设计的尺寸,而且尽量采用在目前最流行的屏幕尺寸(比如目前占屏幕比重比较多的是系列,也即是*或者*,下面的图标制作也在次基础上进行比例的换算)上设计。先了解一下屏幕的级别:屏幕级别屏幕密度比率(相对)物理大小(英寸)像素大小通常的分辨率ldpi.mdpi*hdpi.*xhdpi*xxhdpi*说明:屏幕级别:注意屏幕级别是按照密度分级,和像素没有关系。如果非要让密度和像素扯上关系,则需要一个参照系,android使用mdpi级别作为标准参照屏幕,也就是说在*分辨率的手机上一个密度可以容纳一个像素。然后其他密度级别则在此基础上进行对比。如果理想情况下,*的屏幕一个密度可以容纳1.5个像素。物理大小:单位是英寸而不是像素,也就说一个英寸在任何分辨率下显示的大小都是一样的,但是像素在密度不同的手机里面显示的实际的大小是不一样的(这就是为什么android手机需要适配的原因)。然后就是重点。假设1像素在密度下显示1英寸,则1像素在密度基础上显示大约0.英寸,在密度下显示0.5英寸。于是就出现一种情况,在电脑上的一个像素,在不同的手机上看实际的大小不一样。那么怎么让“设计效果”在不同的手机上看起来显示的区域一样呢?还是假设一个像素在密度下的显示在一个密度内,也假设就是一英寸。那么需要几个像素才能在密度级别下显示在一英寸范围内呢?答案是1.5个像素(根据上图的比率换算)。了解了这个关系,接下来就是图标的制作。2、关于切图。关于切图有几个建议:第一,长宽最好是3的倍数(根据android的推荐logo图标的大小是(mdpi),(hdpi),(xhdpi)得出的最小公约数)。第二,长宽最好是偶数。因为奇数在进行等比压缩的时候可能有问题。第三,根据上面两条,如果长宽是6的倍数最理想。第四,如果可以拉伸而不改变设计意图的情况下,比如纯色背景,则使用android的9path工具制作成.9的图片。3、关于图标的适配。然后接下来的一切就和设计稿没什么关系。在切好图的基础上,根据屏幕密度、像素和实际大小的比例关系。假如设计司在*的分辨率下做好了设计图,并且切好图,如果你需要适配*屏幕,该怎么做?根据比例,他们的关系是2:3,于是你需要按照1.5倍比例制作图标,比如你在*的设计稿上切下来一个*像素的图,那么你就需要制作一个等比放大成*像素的图标,这样同一个图标在*的屏幕和*的屏幕上显示的实际大小才一样。同理,如果你需要适配xxhdpi则需要在*的基础上制作一个等比放大成*像素的图标。4、关于图标的目录,*切下来的图我们放在drawable-hdpi目录下,按照2:3放大的图标放在drawable-xhdpi目录下,按照2倍放大的图标放在drawable-xxhdpi目录下。android会根据手机的密度优先查找对应的目录的资源,比如*分辨率下的手机如果密度是,则自动加载drawable-hdpi这个目录下的图标,如果*密度是的手机自动加载drawable-xhdpi这个目录下的图标。如果没有这个文件夹,则查找和最接近的对应密度文件夹。三、其它接下来要说的估计会让你失望,根据上面的步骤也不能完全解决适配的问题,只能是大概适配,而就算根据上面的步骤大概适配了,实际在手机上的效果也有出入。比如魅族MX3的分辨率是*,标准情况下密度是,但是他的密度大约是,和接近,也就是会查找drawable-xxhdpi这个资源下的文件。也就是说你在*分辨率下切图然后按两倍放大的图标在这台手机上显示的效果还是比实际的小。而另一个要说的问题是*或者*,他们的密度很可能是或者接近也可能是。于是在*的设计稿上切下来的图并且进行的适配制作,在这些手机上显示的实际大小也可能或大或小

Android实战--英文词典(API+GSON+Volley) 转载请注明出处,喜欢我的可以关注我!上一节我们介绍了GSON和Volley,用GSON对返回的数据进行了初步解析,这一节我们更进一步,讨论一下如何实现英

Android 接口的回调函数 实例代码:(newOnHttpListener(){@OverridepublicvoidonStart(){//TODOAuto-generatedmethodstubsuper.onStart();}@OverridepublicvoidonProgress(intmProgress,Stringmessage){//TODOAuto-generatedmethodstub

Android数据库学习 我个人感觉安卓自带的数据库用的不是太多的,毕竟现在很多应用都直接和服务器数据库进行交互,或者直接API获取一些接口的数据,但是不可否认自

标签: 基于android开发

本文链接地址:https://www.jiuchutong.com/biancheng/382229.html 转载请保留说明!

上一篇:Android: wifi打开和关闭的流程解析(安卓wifi打不开解决)

下一篇:Android实战--英文词典(API+GSON+Volley)(android英语)

  • 增值税销项进项什么意思
  • 税务局核定税种是什么意思
  • 承兑汇票可以随便给人看吗
  • 上个季度财务报表已申报,可以更正吗
  • 自产自销发票可以抵扣增值税发票吗
  • 企业持有到期债券的风险
  • 银行存款支付现金股利属于什么科目
  • 银行利息税是多少2021
  • 员工工资的扣点
  • 报废资产处置收入怎么计税
  • 待处理财产损益借方余额代表什么
  • 生产共同费用每个月都有摊销吗?
  • 重置申报清册是什么意思
  • 2018年工会经费返还比例
  • 关于土地增值税若干问题的通知
  • 电子发票转收入怎么做为记账凭证?
  • mac book air文件夹怎么重命名
  • 企业所得税如何计算
  • 会计科目发出商品
  • 手撕定额发票能不能报销
  • rundll.exe是什么程序
  • 美团佣金收费标准结构图
  • 出差补贴是必须的吗
  • 企业所得税税款
  • php require include
  • 领取养老金后每年会增加多少
  • 车辆维修费怎么做分录
  • 增值税纳税申报表附列资料(一)
  • php实现文件上传需要使用哪个全局变量
  • 刚购入的固定资产怎么算
  • 股息和未分配利润的区别
  • Emiller's Advanced Topics In Nginx Module Development
  • 会计人员信息采集怎么看审核通过
  • 折扣和佣金合法的两个条件是什么?
  • vue如何实现路由跳转缓存
  • 织梦cms官网
  • 公司分红的会计分录
  • mysql常用表
  • 缴纳文化事业建设费
  • 企业如何采购
  • 网上商城功能
  • 一般纳税人可以给小规模开专票吗
  • 房产税的纳税义务人是征税范围内房屋产权所有人
  • 赠送商品入什么科目
  • 不用交社保的几种情况
  • 动迁补偿金
  • 房地产公司分立 土地转移
  • 长期应付款科目的涉税风险
  • 现金比率的计算例题
  • 支付临时工人的报酬属于工资薪金概算吗
  • 小微企业减免附加税税率
  • 房地产企业帐套设置
  • 产权交易所交易流程
  • 主营业务收入用什么账簿登记
  • 进项税销项税分录
  • 账户验证费会计分录
  • 加盟店直营店什么意思
  • 长期应付职工薪酬属于其他非流动负债吗
  • windows主进程rundll32总是用麦克风
  • 计算机上没有运行windows无线服务
  • UBUNTU怎么安装MPEG-4解码器
  • WIN10系统怎么清理电脑c盘垃圾怎么清理
  • linux 更新系统
  • 意大利的福利政策
  • opensuse安装显卡驱动
  • macos 多屏
  • linux系统安装驱动
  • ftql
  • jquery 选择
  • bat脚本删除注册表
  • 网页中英文切换
  • 怎样用python
  • shell脚本clear
  • android ui开发
  • python数据的概念
  • python如何查看
  • 财税专家刘杨简历图片介绍
  • a类棉b类棉c类的区别
  • 山西税务12366
  • 餐饮发票怎么看真假
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设