你可以通过视图的getWidth()和getHeight()来获取视图的宽度和高度。
但是,可能会让你失望的是,如果你直接在onCreate方法内调用这两个函数,你会的到0。
为什么呢?
这是因为,当onCreate被调用的时候,视图的内容正在被LayoutInflater来填充xml布局。
这个过程会填充布局,但是暂时不会设置视图的大小。
那么视图到底什么时候获得自己的大小尺寸呢?
实际上是在Layout以后,而layout又是在onCreate调用以后。
那么,如果我们要在onCreate方法中获取视图的大小,应该怎么办呢?
其实,解决方法还是有的,就是利用视图的post方法。
废话不多说,看下代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
View view = findViewById(R.id.main_my_view);
view.post(new Runnable() {
// Get size of view after layout
@Override
public void run() {
Log.d(TAG, "view has width: "+view.getWidth() + " and height: "+view.getHeight());
}
});
}
分享到:
相关推荐
可惜的是,根据我的验证,利用网上转载的那些方法在OnCreate函数中获取到的仍然是0(希望搞技术的能自己验证过再转载),例如Measure方法之后调用getMeasuredWidth的值还是0。 原因是因为当OnCreate函数发生时,...
onCreate中获取图片的宽度和高度失败!采用其他方法,比如BitmapFactory。
主要介绍了Android OnCreate()中获取控件高度与宽度两种方法详解的相关资料,这里提供了两种方法,大家可以都看下,需要的朋友可以参考下
主要介绍了Android中oncreate中获得控件高度或宽度的实现方法的相关资料,希望通过本文大家能实现这样的功能,需要的朋友可以参考下
Android Studio SQLite不调用oncreate方法
当我们在 onCreate() 方法中获取某个 View 组件的宽度和高度,直接调用 getWidth()、getHeight()、getMeasuredWidth()、getMeasuredHeight() 方法只会得到 0。这是什么原因呢?下面来一起看看吧 实现
本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的...
本文主要介绍Android onCreate( )方法,做Android应用的朋友对onCreate()的方法并不陌生,在开发应用的时候大家应该注意什么呢,这里给大家详细说明
这是一个动态的设置和获取控件的宽度,在onCreate()方法中。
1. 布局绘制过程 2. 遍历视图 3. 在onCreate()方法中获取View的宽度和高度 4. android:measureWithLargestChild使用说明 5. weight及weightSum使用说明
这一份代码是实现MFC的窗口创建完成需要立刻对某些...因为在MFC的初始化函数中,窗口创建还没有完成不能对窗口上的控件进行初始化操作,这是需要调用OnCreate函数来完成初始化控件的操作。 这个VS工程是使用VS2017。
原因在于View的Measure过程和Activity的生命周期方法不是同步执行的,因此无法保证Activity执行了onCreate、onStart、onResume时某个View已经测量完毕,如果View没有测量完毕,那么获得的宽高就是0。
如果当前位置定位不成功,则可以用此方法获取缓存中的上一次打开地图时定位的地理位置)。这样就避免了空指针异常。而且更重要的是GPS定位不是一下子就能定位成功的,在90%以上的情况下,getLastKnownLocation返回...
用vc++6.0创建一个A名称MFC(EXE)对话框工程,在...3、右击IDD_A_DIALOG对话框在OnCreate()函数中添加代码 b.Create(IDD_DIALOG1); //IDD_DIALOG1为对话框ID 4、在按钮单击事件中添加代码 b.ShowWindow(SW_SHOWNORMAL);
2、在资源中增加一个对话框,将其属设置为child 和None 3、生成一个基于对话框的类 4、在含有OnDraw函数的类中调用该对话框 先在 *.h文件中定义对话框的类变量 在要调用类的OnCreate函数中添加dlg.Create(IDD_...
我们平时获取资源是通过 findViewById 方法进行的,比如我们常在onCreate方法中使用这样的语句: btnChecked=(ImageView)findViewById(R.id.imgCheck); findViewById是我们获取layout中各种View 对象比如按钮、标签...
此版本的Android蓝牙聊天是通过使用Android蓝牙聊天的原始google源代码示例进行的。 通过复制app / src / ... 将其复制并粘贴到您的项目中,并在OnCreate方法中合并代码,并创建自己的相同且有趣的应用程序。 和平 :)