Android中oncreate中获得控件高度或宽度的实现方法
Android中oncreate中获得控件高度或宽度的实现方法
onCreate函数只是提供了数据初始化的机会,此时还没有正式绘制图形。在图形尚未渲染的情况下,getWidth()或getHeight()得到的值为0。如果需要自适应屏幕,需要一进入界面就得到父控件大小,然后需要在onCreate中动态设置子控件大小。
方法1:
利用ViewTreeObserver类的addOnPreDrawListener接口。
ViewTreeObserver vto = hscrollview.getViewTreeObserver(); vto.addOnPreDrawListener(newViewTreeObserver.OnPreDrawListener() { @Override publicboolean onPreDraw() { if(hasMeasured == false){ intwid = hscrollview.getWidth(); inthei = hscrollview.getHeight(); if(wid != 0 && hei != 0){ hasMeasured= true; } } returntrue; } });
方法2:
利用ViewTreeObserver类的addOnGlobalLayoutListener接口。
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关推荐
-
Android使用onCreateOptionsMenu()创建菜单Menu的方法详解
本文实例讲述了Android使用onCreateOptionsMenu()创建菜单Menu的方法.分享给大家供大家参考,具体如下: Android一共有三种形式的菜单: 1.选项菜单(optinosMenu) 2.上下文菜单(ContextMenu) 3.子菜单(subMenu) 其中最常用的就是选项菜单(optionsMenu), 该菜单在点击 menu 按键 后会在对应的Activity底部显示出来. 1.Activity菜单机制 (与dialog类似) Activity有一套机制来实现对菜
-
Android OnCreate()中获取控件高度与宽度两种方法详解
Android OnCreate()中获取控件高度与宽度 试过在OnCreate()中获取控件高度与宽度的童鞋都知道,getWidth()与getHeight()方法返回是0,具体原因 看一下Activity的生命周期 就会明白. 上代码: 方法一: int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); int h = View.MeasureSpec.makeMeasureSpec(0,View.Me
-
Android 解决嵌套Fragment无法接收onCreateOptionsMenu事件的问题
前言 嵌套的二级Fragment无法接收onCreateOptionsMenu事件的问题,设置了setHasOptionsMenu也不管用. 正文 补充说明: 如果通过缓存Fragment手动调用二级Fragment,可能会出现莫名其妙的问题,比如更多Menu不显示. 解决办法: 在一级Fragment中添加Menu,可以在一级onOptionsItemSelected中手动调用二级的此方法来处理相关事件. 示例代码: @Override public void onCreateOptionsM
-
Android在OnCreate中获取控件的宽度和高度的实现代码
在Android中,有时需要对控件进行测量,得到的控件宽度和高度可以用来做一些计算.在需要自适应屏幕的情况下,这种计算就显得特别重要.另一方便,由于需求的原因,希望一进入界面后,就能得到控件的宽度和高度. 可惜的是,根据我的验证,利用网上转载的那些方法在OnCreate函数中获取到的仍然是0(希望搞技术的能自己验证过再转载),例如Measure方法之后调用getMeasuredWidth的值还是0. 原因是因为当OnCreate函数发生时,只是提供了数据初始化的机会,此时还没有正式绘制图形.而绘
-
Android onCreate( )方法详细介绍
onCreate( )方法是android应用程序中最常见的方法之一,那么,我们在使用onCreate()方法的时候应该注意哪些问题呢? 先看看Google Android Developers官网上的解释: onCreate(Bundle) is where you initialize your activity. Most importantly, here you will usually call setContentView(int) with a layout resource d
-
Android编程实现两个Activity相互切换而不使用onCreate()的方法
本文实例讲述了Android编程实现两个Activity相互切换而不使用onCreate()的方法.分享给大家供大家参考,具体如下: 这里要实现的目的是: 有3个Activity: A,B,C,从A中可以进入B,B中可以进入C,并且B和C之间可能需要多次相互切换,因此不能使用普通的startActivity-finish方式,因为重新创建Activity比较耗时.当这个Activity内容比较多时,重复创建很大的影响了流畅性.(即实现类似于QQ上 选择照片页面-选择相册页面,这两个页面可能多次相
-
Android onCreateOptionsMenu的使用方法总结
Android onCreateOptionsMenu的使用方法总结 任何一款软件都少不了对"菜单"的使用.在Android下,每一个activity都捆绑了一个Menu,要想定义和使用菜单,都必须在Activity下进行操作,复写onCreateOptionsMenu 和 onOptionsItemSelected这两个方法.举例如下: @Override public boolean onCreateOptionsMenu(Menu menu) { //调用基类的方法,以便调出系统
-
Android中oncreate中获得控件高度或宽度的实现方法
Android中oncreate中获得控件高度或宽度的实现方法 onCreate函数只是提供了数据初始化的机会,此时还没有正式绘制图形.在图形尚未渲染的情况下,getWidth()或getHeight()得到的值为0.如果需要自适应屏幕,需要一进入界面就得到父控件大小,然后需要在onCreate中动态设置子控件大小. 方法1: 利用ViewTreeObserver类的addOnPreDrawListener接口. ViewTreeObserver vto = hscrollview.getVie
-
C#中datagridview使用tooltip控件显示单元格内容的方法
本文实例讲述了C#中datagridview使用tooltip控件显示单元格内容的方法.分享给大家供大家参考,具体如下: 代码如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;
-
ASP.NET中TextBox使用Ajax控件显示日期不全的问题解决方法
正常的引用 复制代码 代码如下: <%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="AjaxToolKit" %><asp:TextBox ID="txtRecordTime" runat="server" cssclass="style" width
-
Java实现获取Excel中的表单控件
目录 引入jar包 代码示例 Excel中可通过[开发工具]菜单栏下插入表单控件,如文本框.单选按钮.复选框.组合框等等,插入后的控件可执行设置控件格式,如大小.是否锁定.位置.可选文字.数据源区域.单元格链接等.当Excel中已插入上述控件,需要读取时,也可以使用本文中的方法来读取.下面,将通过Java代码示例展示如何来获取Excel文档中的表单控件.以下是读取的方法及步骤,供参考. 引入jar包 按照如下方法来引用Spire.Xls.jar 版本:5.1.0 方法1 将 Free Spire
-
Android UI 中的 ListView列表控件的示例
当程序中有大量的数据需要展示时,就需要用到 ListView 啦.ListView 允许用户通过手指上下滑动的方式将屏幕外的数据滚动到屏幕内,同时屏幕上原有的数据则会滚动出屏幕. 1 基本用法 布局文件中加入 ListView: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/and
-
总结Android中MD风格相关控件
要使用MD风格控件,首先需要在Gradle中加入Support Design Library,例如: compile 'com.android.support:design:24.1.1' 一.CoordinatorLayout 1.CoordinatorLayout + AppBarLayout 布局文件代码如下: <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.
-
Android中获取控件宽高的4种方法集合
借鉴自开发艺术 1.onWindowFocusChanged 这个方法会被调用多次,在View初始化完毕后会调用,当Activity的窗口得到焦点和失去焦点都会被调用一次(Activity继续执行和暂停执行时). @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (hasFocus) { int width = view.getMeasur
-
android 中win10 使用uwp控件实现进度条Marquez效果
本文将告诉大家,如何做一个带文字的进度条,这个进度条可以用在游戏,现在我做的挂机游戏就使用了他. 如何做上图的效果,实际需要的是两个控件,一个是显示文字 的 TextBlock 一个是进度条. 那么如何让 文字和左边的距离变化?使用 TranslateTransform 看起来 Marquez 的界面就是: <ProgressBar x:Name="Mcdon" Maximum="100" Minimum="0" Value="2
-
Android中让图片自适应控件的大小的方法
这就需要把.png格式的图片转成.9.png格式,.9.png就是后缀名.在安装Android-SDK时自带了<draw9patch.bat>可以把.png格式的图片编辑后保存就变成了.9.png格式.这个文件存放在你所安装的Android-SDK目录->sdk->tools目录下. .9.png格式在Andriod中可以做到根据控件大小自适应,最重要的是不会失真.是不是很完美?下面就来看是如何制作.9.png格式的进度条. 启动后的界面如下: 首先要准备要转换的png图片,并把图
随机推荐
- 提示“处理URL时服务器出错”和“HTTP 500错误“的解决方法
- Oracle中Union与Union All的区别(适用多个数据库)
- SQL SERVER 与ACCESS、EXCEL的数据转换方法分享
- Node.js开源应用框架HapiJS介绍
- JavaScript实现提交模式窗口后刷新父窗口数据的方法
- js中eval()函数和trim()去掉字符串左右空格应用
- Node.js连接mongodb实例代码
- 浅谈vim的四种模式及模式切换
- json格式的Ajax提交示例代码
- vue插件vue-resource的使用笔记(小结)
- jQuery中$.each使用详解
- jQuery中get()方法用法实例
- JQuery实现的图文自动轮播效果插件
- js中把JSON字符串转换成JSON对象最好的方法
- 自用js开发框架小成 学习js的朋友可以看看
- Java集合Iterator迭代的实现方法
- 深入解析C语言中常数的数据类型
- c# 委托和事件实例学习
- C#图像颜色聚类高效方法实例
- 巧用php中的array_filter()函数去掉多维空值的代码分享