图片的像素和Android的dp值之间的关系。
这是一个困扰我很就得问题。今天在我的反复摸索下,总结出了一些个规律。
以下测试以魅族mx5为例。
手机参数:5.5英寸;高:1920;宽1080.
/**
* 获得屏幕的宽度
*
* @param context
* @return
*/
public static int getScreenWidth(Context context) {
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
return (int)(displayMetrics.widthPixels/displayMetrics.density);
}
/**
* 获得屏幕的高度
* @param context
* @return
*/
public static int getScreenHeight(Context context) {
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
return (int)(displayMetrics.heightPixels/displayMetrics.density);
} /**
* 获得屏幕的像素宽度
* @param context
* @return
*/
public static int getScreenWidthPx(Context context) {
DisplayMetrics dm = new DisplayMetrics();
WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
windowManager.getDefaultDisplay().getMetrics(dm);
return dm.widthPixels;
} /**
* 获得屏幕的像素高度
* @param context
* @return
*/
public static int getScreenHeightPx(Context context) {
DisplayMetrics dm = new DisplayMetrics();
WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
windowManager.getDefaultDisplay().getMetrics(dm);
return dm.heightPixels;
}
执行各个方法,打印log,得到的数值:
02-29 19:59:09.411: E/InsertADActivity(23228): getScreenHeight:640 getScreenWidth:360
02-29 19:59:09.412: E/InsertADActivity(23228): getScreenHeightPx:1920 getScreenWidthPx:1080
/**
* 获取屏幕的密度
*/
public static float getdensity(Context context) {
DisplayMetrics dm = new DisplayMetrics();
WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
windowManager.getDefaultDisplay().getMetrics(dm);
LogUtil.e("getdensity", "dm.density:"+dm.density+" dm.densityDpi"+dm.densityDpi);
return dm.density;
}
02-29 20:01:56.685: E/getdensity(23228): dm.density:3.0 dm.densityDpi480
if (relativeLayout.getParent()!=null) {
((ViewGroup) relativeLayout.getParent()).removeView(relativeLayout);
}
insertAdDialog = new AlertDialog.Builder(mActivity).setView(relativeLayout).create();
insertAdDialog.setCanceledOnTouchOutside(false);
insertAdDialog.show();
WindowManager.LayoutParams p = insertAdDialog.getWindow().getAttributes(); // 获取对话框当前的参数值
p.height = (int) (DeviceInfo.getScreenHeightPx(mActivity));
p.width = (int) (DeviceInfo.getScreenWidthPx(mActivity));
insertAdDialog.getWindow().setAttributes(p);
当这样设置时,dialog充满屏幕。
图片的像素和Android的dp值之间的关系。的更多相关文章
- 不同手机根据坐标计算控件、图片的像素,px 与 dp, sp换算公式?
参考该帖子:http://www.cnblogs.com/bluestorm/p/3640786.html PPI = Pixels per inch,每英寸上的像素数,即 "像素密度&qu ...
- YUV与像素值之间的关系
一幅彩色图像的基本要素是什么? 说白了,一幅图像包括的基本东西就是二进制数据,其容量大小实质即为二进制数据的多少.一幅1920x1080像素的YUV422的图像,大小是1920X1080X2=4147 ...
- 针对iPhone的pt、Android的dp、HTML的css像素与dpr、设计尺寸和物理像素的浅分析
最近被一朋友问到:css中设置一DOM的height:65px,请问显示的高度是否和Android的65dp的元素等高?脑子里瞬间闪现了一堆的概念,如dpr,ppi,dp,pt等,然而想了一阵,浆糊了 ...
- iOS图片的伪裁剪(改变图片的像素值)
0x00 原理 利用一张图片事先画好的图片(以下称为蒙板),盖在要被裁剪的的图片上,然后遍历蒙板上的像素点,修改被裁剪图片对应位置的像素的色值即可得到一些我们想要的不规则图片了(比如人脸) 0x01 ...
- win32加载图片获得像素值
在写光栅渲染器时,需要加载图片获得像素以便进行纹理插值,试了几种方法发现下面这种比价简单,效率也可以接受 Texture2D是我自己定义的类,其中m_pixelBuffer是一个动态二维数组,每个元素 ...
- android - px(像素)、dpi(像素密度)、dip(密度无关像素)之间的关系
使用ImageView会遇到的问题 在Android应用中,都少不了图片的显示,ImageView,轮播图,ViewPager等等,很多都是来显示图片的,很多时候,我们都希望图片能够在宽度上填充父窗体 ...
- px(像素)、pt(点)、ppi、dpi、dp、sp之间的关系
px:pixel,像素,电子屏幕上组成一幅图画或照片的最基本单元 pt:point,点,印刷行业常用单位,等于1/72英寸 ppi:pixel per inch,每英寸像素数,该值越高,则屏幕越细腻 ...
- [转]Android中dp,px,sp概念梳理以及如何做到屏幕适配
http://blog.csdn.net/jiangwei0910410003/article/details/40509571 今天又开始我的App开发,因为之前一直做的是SDK,所以涉及到界面UI ...
- 一直困扰设计师多年的Android 单位 dp
轻松理解Android开发单位DP ,让设计与开发高度匹配,整合了网上各大资料汇总一个通俗易懂的. 一直困扰设计师多年的Android 单位 dp 设计这么多年了,相信很多设计师,一直被DP搞得晕头转 ...
随机推荐
- linux中的strings命令简介2
摘自:http://blog.csdn.net/stpeace/article/details/46641069 linux中的strings命令简介 之前我们聊过linux strings的用法和用 ...
- nodejs面试
1. PM2相关 1. PM2的主要功能?*答案:在Node.js进程挂掉以后自动重启进程,并且能够方便的实现Node.js的集群模式* 2. 如何查看当前是否适合重启服务?*答案:pm2 monit ...
- Google C++ style guide——头文件
1.#define保护 使用#define防止头文件被多重包括.命名格式为:<PROJECT>_<PATH>_<FILE>_H_ 比如,foo中的头文件foo/sr ...
- golang基础数据结构
一.概述: 这里主要讨论四种类型---数组.slice.map和结构体 数组和结构体是聚合类型:它们的值都是由很多个元素或者成员字段的值组成.数组是有同构元素组成--每个数组的元素的类型相同:结构体为 ...
- HTML5添加背景音乐
html5 audio 给博客 网页加背景音乐 可以加上个按钮或者链接 让其可停止或暂停 下面代码只是暂停 可以弄成暂停 播放两种状态切换.. 可以考虑换成a标签 <a href="# ...
- IE下图片切换的时候,图片总是切换不成功---根本问题是IE缓存图片
作为WEB设计者,为了在网页展示上加强用户体验,经常会利用图象载入显示状态方法,这自然需要Image对象的onload事件. 在firefox浏览器下完成开发后,可是在IE浏览器中进行调试总不能被调用 ...
- div+css中常见的浏览器兼容性处理-兼容不同浏览器
在网站设计的时候,应该注意css样式兼容不同浏览器问题,特别是对完全使用DIV CSS设计的网,就应该更注意IE6 IE7 FF对CSS样式的兼容,不然,你的网乱可能出去不想出现的效果! div+cs ...
- 根据反射获取属性信息并创建DataTable
查看了一些方法之后,做了一些总结,此方法适用于传进的参数是List<T>类型, 但事先并不知道T的类型,T可以是自定义类型. public DataTable CreateDataTabl ...
- 生成HFile文件后倒入数据出现Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.filter.Filter
数据导入的时候出现: at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclar ...
- mysql优化(2) 观察mysql进程状态
环境准备,安装sysbench wget http://nchc.dl.sourceforge.net/project/sysbench/sysbench/0.4.12/sysbench-0.4.12 ...