Android中UI的单位dp,sp和px使用问题

当前位置:首页 » 学习
In 学习, 笔记  @2015-08-06

首先我看到这一些单位有点恍惚,之前接触过的就是px像素单位,为了适配不同分辨率的屏幕,Android建议使用dp(dip)作为除文字意外的组件的尺寸单位,文字的就用sp。
屏幕像素密度(ppi)计算:ppi = √(长度像素数² + 宽度像素数²) / 屏幕对角线英寸数;
如800×480的4英寸屏幕的ppi = √800²+480² / 4 = 233ppi。

dp与px换算:
px = dp*ppi/160
dp = px / (ppi / 160)

sp与px换算
px = sp*ppi/160
sp = px / (ppi / 160)

现在市场比较常用的屏幕分辨率:
800×480(854×480)
1280×720(1280×768,1280×800)
1920×1080
截至2015年6月Android设备分辨率趋势
(以上统计来自友盟指数
多屏幕适配的3条原则:
1) 设置view的属性android:layout_width和android:layout_height的值时,wrap_content,match_parent或dp比px更好,文字大小应该使用sp来定义。
2) 在程序的代码中不要出现具体的像素值,在dimens.xml中定义;
3) 对不同的屏幕提供合适大小的图片。

屏幕适配的注意事项:
1.AndroidManifest.xml设置
android:anyDensity=”true”时,应用程序安装在不同密度的终端上时,程序会分别加载xxhdpi、xhdpi、hdpi、mdpi、ldpi文件夹中的资源。
相反,如果设为false,即使在文件夹下拥有相同资源,应用不会自动地去相应文件夹下寻找资源:
1) 如果drawable-hdpi、drawable-mdpi、drawable-ldpi三个文件夹中有同一张图片资源的不同密度表示,那么系统会去加载drawable_mdpi文件夹中的资源;
2) 如果drawable-hpdi中有高密度图片,其它两个文件夹中没有对应图片资源,那么系统会去加载drawable-hdpi中的资源,其他同理;
3) 如果drawable-hdpi,drawable-mdpi中有图片资源,drawable-ldpi中没有,系统会加载drawable-mdpi中的资源,其他同理,使用最接近的密度级别。

2.横屏竖屏目录区分
1) drawable
a) drawable-hdpi该图片即适用于横屏,也适用于竖屏;
b) drawable-land-hdpi,当屏幕为横屏,且为高密度时,加载此文件夹的资源;
c) drawable-port-hdpi,当屏幕为竖屏,且为高密度时,加载此文件夹中的资源。其他同理。
2) layout
在res目录下建立layout-port和layout-land两个目录,里面分别放置竖屏和横屏两种布局文件,以适应对横屏竖屏自动切换。

3.使用9-patch PNG图片
使用图片资源时,如果出现拉伸,因为图片处理的原因,会变形,导致界面走形。9-patch PNG图片也是一种标准的PGN图片,在原生PNG图片四周空出一个像素间隔,用来标识PNG图片中哪些部分可以拉伸、哪些不可以拉伸、背景上的边框位置等。
“上、左”定义可拉伸区域
“右、下”定义显示区域,如果用到完整填充的背景图,建议不要通过android:padding来设置边距,而是通过9-patch方式来定义。

4.不同的layout
Android手机屏幕大小不一,有480×320, 640×360, 800×480……怎样才能让Application自动适应不同的屏幕呢?其实很简单,只需要在res目录下创建不同的layout文件夹,比如:layout-640×360、layout-800×480……所有的layout文件在编译之后都会写入R.java里,而系统会根据屏幕的大小自己选择合适的layout进行使用。

参考:
http://blog.csdn.net/guozh/article/details/8954994
http://blog.csdn.net/jdsjlzx/article/details/45891551
http://www.cnblogs.com/zhwl/archive/2013/06/12/3132722.html
http://www.cnblogs.com/bluestorm/p/3640786.html

标签: , , , , ,   评论: Android中UI的单位dp,sp和px使用问题已关闭评论 

wordpress Shortcode自定义插入视频短代码

当前位置:首页 » 学习
In 学习  @2015-07-30

wordpress作为我们全球使用量最大的CMS系统,其可扩展可定制性也是前所未有的强大,短代码功能就是一种一项,由于最近常用到要插入视频的代码,一般选择的是iframe标签的代码手动插入,同时需要修改宽度和高度以匹配自己的主题,iframe代码插入的视频可以在移动端完美的加载,所以一般用这个,但不管怎样,手动添加代码加上每次都要手动修改宽度和高度,的确有点坑爹,那么短代码就是我需要的了。
需要实现的功能很简单,在添加视频的时候,我只需要将需要插入的视频地址填上就可以了,宽度和高度应该可以预设一个值,当然为了代码适用性更强,这两个值应该是可以自定义的。实现如下:
首先在function.php模板函数文件中添加以下函数:

/*Add Video Shortcode*/
function video_url($atts, $content = null) {   
extract(shortcode_atts(array("width"=>'600',"height"=>'400'),$atts));    
return'';
}  
add_shortcode('video','video_url');

注:代码中的class=”video”是为了方便自定义CSS样式什么的,可以不要。

然后在需要插入视频的时候,首先从视频网站上得到视频的“flash地址”,然后在文章中加入代码:


代码中视频的预设宽度和高度值是width=”600″ height=”400″,如果需要自定义,就用下面的代码:


视频高度和宽度可以在这里自定义输入。

强调一下,这里面用到的是视频的flash地址,以优酷为例,在这里可以找到:
wordpress自定义视频插入短代码
以上代码测试可以适用于与国内各大门户视频网站:优酷,土豆,爱奇艺,56,搜狐等。

标签: , , ,   评论: 5枚 

代码高亮WP-Syntax换成WP-GeSHi-Highlight

当前位置:首页 » 学习
In 学习  @2015-06-30

  刚开始用代码高亮插件的时候选了一款简单实用的轻量级插件WP-Syntax(见文章:代码高亮插件wp-syntax插件使用方法),一晃2年多过去了,这个插件已经2年没更新了,那天看到别人用黑色背景的代码高亮插件很炫,我也想试试,找到了一款功能及其强大的插件Crayon Syntax Highlighter,各种主题,各种功能设置,眼花缭乱,几乎你能想到的功能都有,但这不是我想要的了,然后我就找到了今天要给大家推荐的WP-GeSHi-Highlight这个插件。
  WP-GeSHi-Highlight输出代码更加简洁,更加轻型以及超简单使用用法。跟进最新的 WordPress API 调用,完全兼用 WP-Syntax,使用方法也几乎是一样的:

//这里添加代码……

  其中,lang=”html”表示代码语言html,支持240种语言,基本上全部吧; line=”1″ 表示显示行号,如果不需要,去掉即可;escaped=”true” 是为了防止代码转义,如果不需要,去掉即可。
  使用文档:https://gehrcke.de/wp-geshi-highlight-demo/

标签: , , ,   评论: 4枚