android设置控件宽度,android获取屏幕宽度和高度,Android中获取控件宽高的4种方法集合

android设置控件宽度,android获取屏幕宽度和高度,Android中获取控件宽高的4种方法集合

下面小编就为大家分享一篇机器人中获取控件宽高的四种方法集合,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

借鉴自开发艺术

1.onWindowFocusChanged

这个方法会被调用多次,在视角初始化完毕后会调用,当活动的窗口得到焦点和失去焦点都会被调用一次(活动继续执行和暂停执行时)。

@覆盖

public void onWindowFocusChanged(布尔值有焦点){

超级棒。onwindowfocuschanged(hasFocus);

if (hasFocus) {

int width=view。getmeasuredwidth();

int height=view。getmeasuredheight();

}

}

2.view.post

@覆盖

受保护的void onCreate(Bundle saved instancestate){

超级棒。oncreate(savedInstanceState);

视图组root=(视图组)layoutinflater。从(这)开始.inflate(R.layout.activity_main,null,false);

setContentView(root);

最终视图视图=根

view.post(new Runnable() {

@覆盖

公共无效运行(){

int width=view。getmeasuredwidth();

int height=view。getmeasuredheight();

Log.i(标签,宽度' '高度);

}

});

}

具体原理暂时还不懂,不过应该是视角封装的异步回调初始化后,查看的测绘多半也完成了,这是一个同步的过程。所以才可以接收到消息。

3.ViewTreeObserver

他有许多回调。比如当视角树的状态发生改变或者视角树内部的视角可见性发现改变时,onGlobalLayout方法将被回调。

最终视图视图=根

ViewTreeObserver观察者=视图。getviewtreeobserver();

观察者。addongloballayoutlistener(新视图树观察者OnGlobalLayoutListener() {

@覆盖

public void onGlobalLayout() {

view.getViewTreeObserver().removeGlobalOnLayoutListener(this);

int width=view。getmeasuredwidth();

int height=view。getmeasuredheight();

Log.i(标签,宽度' '高度);

}

});

通过一种增加全局监听器又移除的方式,获取观察而来的消息。

4.view.measure

手动测绘,分3种情况:

一、match_parent

这个情况是获取不到的。构造这种情况的MeasureSpec需要知道父容器的剩余空间。

二、具体的数值(dp/px)

比如宽高都是100px,可以这样做:

视图视图=根

int widthMeasureSpec=View .测量规格。制作测量规格(100,查看测量规格。完全正确);

int heightMeasureSpec=View .测量规格。制作测量规格(100,查看测量规格。完全正确);

view.measure(widthMeasureSpec,heightsmeasurespec);

Log.i(标签,widthMeasureSpec ' ' heightsmeasurespec);

到这里为止了,这种方法不推荐,因为测出来发现有错误。

以上这篇机器人中获取控件宽高的四种方法集合就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • windowsandroid手机版下载,windowsandroid安装apk
  • windowsandroid手机版下载,windowsandroid安装apk,WindowsAndroid 安装教程详解
  • android调用webview方法,androidwebview是什么,Android 中 WebView 的基本用法详解
  • android传感器高级编程,Android传感器,Android编程之光线传感器用法详解
  • android.app.Dialog,android自定义dialog对话框,Android开发笔记之-Dialog的使用详解
  • android 图片视频轮播框架,androidlayout轮播图,Android实现炫酷轮播图效果
  • android里的viewpager,安卓自定义view流程,Android自定义引导玩转ViewPager的方法详解
  • android里的viewpager,android viewpager详解
  • android里的viewpager,android viewpager详解,Android自定义超级炫酷的ViewPage指示器
  • android调用webview方法,androidwebview是什么
  • android设置控件宽度,android获取屏幕宽度和高度
  • android蓝牙开发的基本流程,安卓蓝牙app开发教程
  • android蓝牙开发的基本流程,安卓蓝牙app开发教程,android蓝牙简单开发示例教程
  • android菜单栏,android菜单控件
  • android菜单栏,android菜单控件,Android实现选项菜单子菜单
  • 留言与评论(共有 条评论)
       
    验证码: