1.获取屏幕宽高

方法1:
int screenWidth = getWindowManager().getDefaultDisplay().getWidth(); // 屏幕宽(像素,如:480px) int screenHeight = getWindowManager().getDefaultDisplay().getHeight(); // 屏幕高(像素,如:800p) Log.e(TAG + " getDefaultDisplay", "screenWidth=" + screenWidth + "; screenHeight=" + screenHeight);
方法2:
DisplayMetrics dm = new DisplayMetrics(); dm = getResources().getDisplayMetrics(); float density = dm.density; // 屏幕密度(像素比例:0.75/1.0/1.5/2.0) int densityDPI = dm.densityDpi; // 屏幕密度(每寸像素:120/160/240/320) float xdpi = dm.xdpi; float ydpi = dm.ydpi; Log.e(TAG + " DisplayMetrics", "xdpi=" + xdpi + "; ydpi=" + ydpi); Log.e(TAG + " DisplayMetrics", "density=" + density + "; densityDPI=" + densityDPI); screenWidth = dm.widthPixels; // 屏幕宽(像素,如:480px) screenHeight = dm.heightPixels; // 屏幕高(像素,如:800px) Log.e(TAG + " DisplayMetrics(111)", "screenWidth=" + screenWidth + "; screenHeight=" + screenHeight);
方法3:
dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); density = dm.density; // 屏幕密度(像素比例:0.75/1.0/1.5/2.0) densityDPI = dm.densityDpi; // 屏幕密度(每寸像素:120/160/240/320) xdpi = dm.xdpi; ydpi = dm.ydpi; Log.e(TAG + " DisplayMetrics", "xdpi=" + xdpi + "; ydpi=" + ydpi); Log.e(TAG + " DisplayMetrics", "density=" + density + "; densityDPI=" + densityDPI); int screenWidthDip = dm.widthPixels; // 屏幕宽(dip,如:320dip) int screenHeightDip = dm.heightPixels; // 屏幕宽(dip,如:533dip) Log.e(TAG + " DisplayMetrics(222)", "screenWidthDip=" + screenWidthDip + "; screenHeightDip=" + screenHeightDip); screenWidth = (int)(dm.widthPixels * density + 0.5f); // 屏幕宽(px,如:480px) screenHeight = (int)(dm.heightPixels * density + 0.5f); // 屏幕高(px,如:800px) Log.e(TAG + " DisplayMetrics(222)", "screenWidth=" + screenWidth + "; screenHeight=" + screenHeight);
2.获取控件的宽高,一般来说,我们在onCreate里面得到的控件的宽高全是0.采用下面的方法,可以得到真实的宽高
方法一 :
int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
imageView.measure(w, h);
int height =imageView.getMeasuredHeight();
int width =imageView.getMeasuredWidth();
textView.append("\n"+height+","+width);
此方法会加载onMeasure三次
方法二 :
ViewTreeObserver vto = imageView.getViewTreeObserver();
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
public boolean onPreDraw() {
int height = imageView.getMeasuredHeight();
int width = imageView.getMeasuredWidth();
textView.append("\n"+height+","+width);
return true;
}
});
此方法会加载onMeasure二次,但是回调函数会回调很多次
方法三:
ViewTreeObserver vto2 = imageView.getViewTreeObserver();
vto2.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
imageView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
textView.append("\n\n"+imageView.getHeight()+","+imageView.getWidth());
}
});
此方法会加载onMeasure二次,但是回调函数只回调一次
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# android
# 获取控件高度
# 获取控件宽度
# android获取屏幕宽高
# Android编程获取屏幕宽高与获取控件宽高的方法
# Android 获得屏幕宽高的三种方式
# Android获取手机屏幕宽高、状态栏高度以及字符串宽高信息的方法
# Android获取设备屏幕宽高pix值的方法
# 回调
# 法会
# 加载
# 可以得到
# 很多次
# float
# getDisplayMetrics
# density
# dm
# DisplayMetrics
# TAG
# getResources
# xdpi
# widthPixels
# ydpi
# densityDPI
相关文章:
如何在阿里云通过域名搭建网站?
如何选择网络建站服务器?高效建站必看指南
高防服务器租用如何选择配置与防御等级?
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
实现点击下箭头变上箭头来回切换的两种方法【推荐】
南宁网站建设制作定制,南宁网站建设可以定制吗?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
如何选择PHP开源工具快速搭建网站?
网站制作员失业,怎样查看自己网站的注册者?
如何在七牛云存储上搭建网站并设置自定义域名?
建站主机助手选型指南:2025年热门推荐与高效部署技巧
如何在香港服务器上快速搭建免备案网站?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
建站主机数据库如何配置才能提升网站性能?
网站插件制作软件免费下载,网页视频怎么下到本地插件?
招贴海报怎么做,什么是海报招贴?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
如何快速搭建个人网站并优化SEO?
网站制作话术技巧,网站推广做的好怎么话术?
如何生成腾讯云建站专用兑换码?
如何零基础在云服务器搭建WordPress站点?
如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法
ppt制作免费网站有哪些,ppt模板免费下载网站?
建站之星导航配置指南:自助建站与SEO优化全解析
微信小程序 input输入框控件详解及实例(多种示例)
,网页ppt怎么弄成自己的ppt?
如何在景安服务器上快速搭建个人网站?
c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
c# await 一个已经完成的Task会发生什么
行程制作网站有哪些,第三方机票电子行程单怎么开?
高端云建站费用究竟需要多少预算?
太原网站制作公司有哪些,网约车营运证查询官网?
建站之星收费标准详解:套餐费用及年费价格表一览
道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?
如何获取免费开源的自助建站系统源码?
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
c# 在高并发下使用反射发射(Reflection.Emit)的性能
如何做静态网页,sublimetext3.0制作静态网页?
东莞专业制作网站的公司,东莞大学生网的网址是什么?
无锡营销型网站制作公司,无锡网选车牌流程?
如何快速搭建FTP站点实现文件共享?
建站之星手机一键生成:多端自适应+小程序开发快速建站指南
建站之星导航菜单设置与功能模块配置全攻略
北京网站制作的公司有哪些,北京白云观官方网站?
如何通过老薛主机一键快速建站?
,如何利用word制作宣传手册?
*请认真填写需求信息,我们会在24小时内与您取得联系。