Android自定义View里面获取宽高及dp和px间的转换

在自定义View的onMeasure和onDraw里面获取View的宽高

onMesure先被调用:

@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {super.onMeasure(widthMeasureSpec, heightMeasureSpec);// 获取宽-测量规则的模式和大小int widthMode = MeasureSpec.getMode(widthMeasureSpec);int widthSize = MeasureSpec.getSize(widthMeasureSpec);// 获取高-测量规则的模式和大小int heightMode = MeasureSpec.getMode(heightMeasureSpec);int heightSize = MeasureSpec.getSize(heightMeasureSpec);//获取xml里面设置的宽高的像素值Log.e(LOG_TAG,"widthSize="+widthSize+",heightSize="+heightSize);}

onDraw在OnMesure后被调用。

   @Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);// 获取控件的高度和宽度int width = getWidth();int height = getHeight();//获取的宽度值为:450pxLog.e(LOG_TAG,"onDraw="+width);// 设置圆的半径 = 宽,高最小值的2分之1int r = Math.min(width, height)/2;// 画出圆(蓝色)// 圆心 = 控件的中央,半径 = 宽,高最小值的2分之1canvas.drawCircle(width/2,height/2,r,mPaint1);}

dp和px间的转换

    private float dpToPx(float dp, Context context){float scale=context.getResources().getDisplayMetrics().density;return dp*scale+0.5f;}private float pxToDp(float px,Context context){float scale=context.getResources().getDisplayMetrics().density;return (px-0.5f)/scale;}

Android官网:将 dp 单位转换为像素单位

Android自定义View里面获取宽高及dp和px间的转换相关推荐

  1. android 通过图片url获取宽高_通过 URL 获取图片宽高优化

    一张小图.png 前言 客户端研发时,有时会有这样的需求,需要根据图片链接地址获取图片的宽高来进行界面排版. 一般比较正规的做法,是服务端在返回数据时将图片的信息属性一起带回来,这也符合轻客户端设计规 ...

  2. Android自定义View——可以设置最大宽高的FrameLayout

    为什么80%的码农都做不了架构师?>>>    可以设置最大宽高的FrameLayout 支持相对父控件的半分比设置 默认优先比例设置 不支持参数小于零 MaxLayout.java ...

  3. android 自定义view 高度,自定义View之宽高的设置,全网最详解

    今天给大家带来的是自定义View,然后如何设置他的宽高,经常用自定义view的程序猿肯定都知道我们在给自定义view设置wrap_content或者match_parent,view都会占满全屏,就想 ...

  4. Android 自定义 View 三步骤

    自定义 View 三步骤 自定义View三步骤,即:onMeasure()(测量),onLayout()(布局),onDraw()(绘制). onMeasure() 首先我们需要弄清楚,自定义 Vie ...

  5. Android 自定义view onMeasure() 方法剖析

    接着上一篇自定义view 相关的,揭秘 Android Graphics2D 实现动态效果之--invalidate()   内容的介绍,这一篇主要介绍下自定义view 中的 onMeasure()方 ...

  6. android 自定义布局 根据布局获取类,阿里高级Android面试题解析:Android自定义View—布局过程的自定义...

    自定义分三部分绘制.布局和触摸反馈,本篇主要讲的布局过程的自定义 布局过程的含义 布局过程,就是程序在运行时利用布局文件的代码来计算出实际尺寸的过程. 布局过程的工作内容 两个阶段:测量阶段和布局阶段 ...

  7. android 自定义特效,Android自定义View之高仿QQ健康

    我们都知道自定义View一般有三种直接继承View.继承原有的控件对控件的进行修改.重新拼装组合,最后一种主要针对于ViewGroup.具体的怎么做不是本文的所涉及的内容(本文是基于第一种方式实现的) ...

  8. android自定义view获取控件,android 自定义控件View在Activity中使用findByViewId得到结果为null...

    转载:http://blog.csdn.net/xiabing082/article/details/48781489 1.  大家常常自定义view,,然后在xml 中添加该view 组件..如果在 ...

  9. android 高仿 探探卡片滑动,Android自定义View仿探探卡片滑动效果

    Android自定义View仿探探卡片滑动这种效果网上有很多人已经讲解了实现思路,大多都用的是RecyclerView来实现的,但是我们今天来换一种实现思路,只用一个自定义的ViewGroup来搞定这 ...

  10. android自定义View之(六)------高仿华为荣耀3C的圆形刻度比例图(ShowPercentView)

    为什么写这篇文章: 显示当前的容量所占的比例,表现当前计划的进度,一般都会采用百分比的方式,而图形显示,以其一目了然的直观性和赏心悦目的美观形成为了我们的当然的首选. 在图形表示百分比的方法中,我们有 ...

最新文章

  1. Vagrant 管理部署 VirtualBox (推荐使用)
  2. Sublime Text 4首个稳定版发布:全新UI、多选项卡、支持GPU渲染
  3. mysql 对多列进行排序 分组,尝试从多列全文mysql搜索中对结果进行排序
  4. 【实施工程师】vim命令
  5. Qt::WA_OpaquePaintEvent理解
  6. JavaScript 基础
  7. 创业失败感悟第十四天
  8. 网络编程之OSI七层协议
  9. paip.终端服务器超出了最大允许连接数的解决
  10. 微信小程序开发——获取APPID
  11. 最多站长使用的DNS服务商
  12. 多个blockquote_换句话说:使用blockquote,cite和q元素
  13. Json字符串的标准写法
  14. Sql Server中的用户名和登录名
  15. su oracle是什么意思,su 命令 以及 su oracle 与su - oracle 命令区别
  16. gSOAP 源码分析(二)
  17. python怎么读excel_python怎么读写excel文件
  18. 任何人都能看得懂的网络协议之 ARP
  19. 解决ERROR #42601 syntax error at or near “)“
  20. 下雪html特效代码,JavaScript 实现下雪特效的示例代码

热门文章

  1. html字数统计,html中利用javascript实现文本框字数的动态计算
  2. python模拟ios点击_弱弱的问下,ios的捷径可以实现模拟点击吗?
  3. Windows关闭指定端口bat脚本
  4. spss入门——简单的数据预处理到时间序列分析系列(声明!!!!!!!)
  5. 【音视频—基础】分辨率、码率和帧率
  6. Django文档是如何组织的?
  7. 全面拆解携程云原生实践,打造智能弹性的云端酒店直连系统
  8. Android Studio安装(本人也是站在巨人肩膀上学习~)
  9. java jtable 单元格合并_JTable单元格合并AAA
  10. OKR实施细则(转)