sevenzsk 2018-03-08 06:16 采纳率: 100%
浏览 994
已采纳

Android中自定义控件的一些问题

自定义的控件设置layout_width和layout_height的值,和在
onMeasure(int widthMeasureSpec, int heightMeasureSpec)方法中的参数有什么关系,为什么使用getMeasuredHeight()和getMeasuredWidth()获取的值和layout_width的值不一样???

  • 写回答

4条回答 默认 最新

  • RottenWang 2018-03-09 06:31
    关注

    首先xml定义的值是你所期望的值 在实际中 可能由于父布局的种种限制 造成你期望的值和实际值不相等
    再者由于dp是适配值,所以在不同的手机上,最终测量出来的是px值,自然就不尽相同.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • Hellowochen 2018-03-08 06:35
    关注

    layout_width 的值是布局的

    评论
  • 脱裤儿任风吹 2018-03-08 06:44
    关注

    你如果xml里,用px就会发现,两个值就算不一样也差不多,安卓手机的计算方式和代码是有一定差别的,另外你说的onmeasure,的宽高得到的是xml里设置的大概宽高,例如设置match,这边对应有一个atmost,这个是设置后面画布啊这些的整体大小的

    评论
  • baidu_30233079 2018-03-08 10:34
    关注

    注意xml里面配置的单位可以是dp/dip/px,dp(dip)和px有转换关系,每个手机都可能不一样。getMeasuredHeight()和getMeasuredWidth()返回的单位是px

    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 关于#c++#的问题:c++如何使用websocketpp实现websocket接口调用,求示例代码和相关资料
  • ¥15 51单片机的外部中断,按下按键后不能切换到另一个模式
  • ¥15 java连接sqlserver有问题
  • ¥15 yolov8 如何调cfg参数
  • ¥15 这个四人抢答器代码哪儿有问题?仿真程序怎么写?
  • ¥15 burpsuite密码爆破
  • ¥15 关于#ubuntu#的问题,如何解决?(相关搜索:移动硬盘)
  • ¥15 scikit安装之后import不了
  • ¥15 Ros2编译一个使用opencv的c++节点的时候,报了这个错误,请问怎么解决啊
  • ¥15 人脸识别相关算法 YOLO,AI等