今天做个地图,不是用什么百度sdk,直接一个webview嵌入服务器的就好了 我只要传入一个分辨率做参数,因为布局默认有个title占了一部分,我要获得webview的高度和宽度,于是开始学习dp和px的转换顺便看看,于是我开始获取title的高度,突然我想安卓的view.getheight()得到的高度又是什么单位dp ?sp?px?只好自己写了个demo,结果证实,getheight()和getMeasuredHeight()获取得到的都是px单位了,百度一下px和dp的转换得到这个方法了,好直接拿来用了
- /**
- * 根据手机的分辨率从 dp 的单位 转成为 px(像素)
- */
- public static int dip2px(Context context, float dpValue) {
- final float scale = context.getResources().getDisplayMetrics().density;
- return (int) (dpValue * scale + 0.5f);
- }
- /**
- * 根据手机的分辨率从 px(像素) 的单位 转成为 dp
- */
- public static int px2dip(Context context, float pxValue) {
- final float scale = context.getResources().getDisplayMetrics().density;
- return (int) (pxValue / scale + 0.5f);
- }
用完之后当然要知道道理了,于是看到这篇帖子
http://blog.youkuaiyun.com/zhangqijie001/article/details/5894872
问题是解决了,测试发现了webview不填充满屏幕。在左边和头部总是空了几个dp白色的,开始以为是我从服务器获取的分辨率不对,。于是给webview添加了背景色,发现是webview自己没有填充满屏幕,,各种设置都没有用哇。好吧拖鞋了.....
还是安心打打游戏了