博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android界面开发那点事
阅读量:5052 次
发布时间:2019-06-12

本文共 1369 字,大约阅读时间需要 4 分钟。

前言:
 
   为什么要使用dp/dip?导航栏的宽度/高度应该设为多少dp合适?一般情况下应该使每个
 
控件的高度显示为多少?本文就是要解决这些问题。
 
 

一,Android中的各种单位

 
在android开发过程中,我们无法忽略的一个问题就是设备适配问题。从我们刚开始学android的时
 
候,各类教程上就不厌其烦的说,“android碎片化严重,适配很麻烦”、“控件的长度用dip作单位,字
 
体用sp”等等。我们有必要去详细了解一下这些东西,在开发过程中才能游刃有余。
 
 
下面是android中的常见单位:  
 
  • px(像素)可以理解为一个小颜色块,是设备显示时的单位;
  • dip是设备独立像素,不同设备有不同的显示效果,和具体硬件有关;备注:dip == dp
  • dpi是屏幕像素密度,每英寸像素数;
  • sp是像素缩放。google建议用于字体显示。
dpi等于对角线的像素值(=
)除于英寸数。比如,分辨率480 x 800,屏幕尺寸4.3英寸
 
的DPI为:216.
 
为了方便,google将dpi分为多种模式LDPI, MDPI, HDPI, XHDPI, XXHDPI, and XXXHDPI,常见四个如
 
下,分别对应资源文件中的四个后缀:
 
 
 
 
也就是说,216会被划分进hdpi。
 
 
这里有一个基准:160。因为第一款Android设备(HTC的T-Mobile G1)是属于(约等于)160dpi
 
的,以160为基准,乘以0.5、1、2都可以比较好的对应一个dpi模式。因此有了dip转px的公式:
 
 
                                                                    
 
 
 简而言之,单位dp从表现上和px类似,但是它的长度是不固定的,会根据当前硬件的参数而变化,
 
越宽,每dp就越长(相对于固定的px而言),越窄,每dp就越短。
 
因此,为了有更好的显示效果,按照google的推荐,字体使用sp为单位,其他元素使用dp为单位,需
 
要缩放的图使用.9图。
 
 

二,Android中的尺寸

 
    
    Android系统现在已经百花齐放,手机、电视、平板、手表等等都可以刷进Android系统。它的开
 
源性质造就了它远超其他系统的市场份额。就手机和平板而言,google官方将600dp以下为手机
 
(handset),600dp以上的为平板(tablet).    
 
 
 
  •     48dp

 
 
            我们经常会有这样一个需求,就是显示一个小控件让用户输入或者单纯展示信息,比如一个
 
EditText。
 
 
      
 
 
            那么,这个小控件设置为多少合适呢?答案是48dp.
 
            因为要使一个可以被点击的控件能比较好的被点击,它的尺寸应该在7到10毫米之间。而根据
 
各种设备上的状况平均来说,48dp被转化为物理尺寸后都会在9毫米左右。
 
            因此,使用48dp可以保证你的控件能控制为7-10mm这个区间内。随之而来的好处是,既可
 
以比较好的控制合适的信息密度,又可以兼顾控件的点击效果。
 
 
 
        
 
            如下图,ActionBar、每一行的EditText和NavigationBar的高度都设置为了48dp,整体达到一
 
个不错的展示效果。
 
 
 
 
 
 
后记:
 
     参考资料为:
 
    后半段的内容大部分翻译自android文档,一方面感叹Google把文档写的如此之好,另一方面也十
 
分佩服那些翻译书籍的作者。
 
    有不妥之处,还请斧正。
 

转载于:https://www.cnblogs.com/zhenghuiy/p/3755626.html

你可能感兴趣的文章
NYOJ-613//HDU-1176-免费馅饼,数字三角形的兄弟~~
查看>>
graphite custom functions
查看>>
一个自己写的判断2个相同对象的属性值差异的工具类
查看>>
oracle连接的三个配置文件(转)
查看>>
Centos下源码安装git
查看>>
控件发布:div2dropdownlist(div模拟dropdownlist控件)
查看>>
[置顶] 细说Cookies
查看>>
[wp7软件]wp7~~新闻资讯,阅读软件下载大全! 集合贴~~~
查看>>
二叉树的遍历问题总结
查看>>
聊天室(C++客户端+Pyhton服务器)_1.框架搭设
查看>>
pytho logging
查看>>
看看 Delphi XE2 为 VCL 提供的 14 种样式
查看>>
Python内置函数(29)——help
查看>>
机器学习系列-tensorflow-01-急切执行API
查看>>
《大道至简》读后感——论沟通的重要性
查看>>
java中Hashtable和HashMap的区别(转)
查看>>
对Feature的操作插入添加删除
查看>>
git使用中的问题
查看>>
yaml文件 .yml
查看>>
phpcms 添加自定义表单 留言
查看>>