Android在onCreate方法中调用View的getWidth和getHeight时返回的结果是0,因为此时控件还没有Draw出来,所以长和宽都是0。
如果想得到Width和Height,可以对View进行监听:
首先需要重写View的onSizeChange方法,加入监听回调函数:
public class MyTextView extends TextView { public MyTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); // TODO Auto-generated constructor stub } public MyTextView(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } public MyTextView(Context context) { super(context); // TODO Auto-generated constructor stub } SizeChangeListener l; public void setSizeChangeListener(SizeChangeListener orlExt) { l = orlExt; } @Override public void onSizeChanged(int w, int h, int oldw, int oldh) { // TODO Auto-generated method stub l.sizeChanged(w, h, oldw, oldh); super.onSizeChanged(w, h, oldw, oldh); } public interface SizeChangeListener { public void sizeChanged(int w, int h, int oldw, int oldh); } }
然后在Activity中对View设置监听器:
tv_front = new MyTextView(this); tv_front.setBackgroundResource(R.drawable.slidebar); tv_front.setTextColor(Color.BLACK); tv_front.setText("要闻"); tv_front.setGravity(Gravity.CENTER); tv_front.setTextSize(16); //监听textview尺寸改变 tv_front.setSizeChangeListener(new SizeChangeListener() { @Override public void sizeChanged(int w, int h, int oldw, int oldh) { // TODO Auto-generated method stub // 这里能获取真实的高和宽 } });
相关推荐
总结来说,Android开发中获取和修改控件尺寸是通过`onMeasure()`、`onLayout()`、`onDraw()`以及`ViewTreeObserver`等方法来实现的。而修改尺寸则可通过设置`LayoutParams`、使用动画或Transition API等方式,确保在...
首先,Android控件的宽度和高度有两种类型:测量尺寸(measured dimensions)和实际尺寸(actual dimensions)。测量尺寸是在布局阶段确定的,而实际尺寸则是在视图绘制完成后的尺寸。因此,获取这两种尺寸的方法略...
本文将深入探讨如何根据【标题】"Android自定义组合控件"和【描述】中的内容,结合【标签】"android 自定义控件 组合控件 自定义属性",来创建一个自己的自定义组合控件。 首先,我们要明白什么是自定义控件。在...
### Android控件大全及各布局控件的使用详解 #### 一、Android控件概述 ...通过以上介绍,您可以了解到Android控件的基本用法和一些高级控件的特性。掌握这些控件将有助于您开发出更加丰富和交互性强的应用程序。
- 控件宽高:在Android中,每个UI元素都有其宽度和高度,通常以像素为单位。 - 测量过程:Android系统会在布局渲染过程中自动测量每个控件的大小,但开发者也可以自定义测量逻辑。 2. 获取控件宽高的方法 - `...
它的大小和位置是通过设置`android:layout_width`和`android:layout_height`来控制的,而`android:layout_centerInParent="true"`则确保图标居中于这个圆形视图中。 总之,要让Android子控件超出父控件的范围显示,...
本篇文章将深入探讨如何在Android中实现这样的控件,以及其在实际应用中的设计和使用。 一、步骤控件的基本概念 步骤控件通常由一系列表示步骤的小图标或文字组成,每个步骤代表一个具体的操作或状态。用户在完成每...
Android Studio 动态加载 Fragment 和获取实例的方法 Android Studio 是一个功能强大的集成开发环境(IDE),它提供了许多实用的功能和工具来帮助开发者快速构建高质量的 Android 应用程序。在 Android 开发中,...
在Android开发中,为了提供丰富的用户界面体验,各种各样的自定义控件是必不可少的。本篇将深入探讨“GaugeView”...通过研究和使用这款控件,开发者不仅可以解决具体需求,也能加深对Android自定义视图的理解和实践。
在Android开发中,"完美下拉框控件"通常指的是具有高效、自定义化和用户体验优良的Spinner组件。Spinner是Android SDK提供的一种基础UI控件,用于实现下拉选择的效果,它可以在用户点击后弹出一个列表供用户选择。本...
通过以上介绍,我们可以看到,在Android开发中控制控件的显示与隐藏是非常简单和直观的。无论是通过XML布局文件还是Java/Kotlin代码,都可以轻松实现这一功能。了解这些基础知识对于构建用户友好的界面和提高用户...
这些属性主要包括`layout_width`、`layout_height`、`android:layout_margin`、`android:layout_gravity`等。在XML布局文件中,我们可以直接设置这些属性;而在代码中,我们需要使用`LayoutParams`来动态修改。 ...
总结来说,Android时间日期控件允许开发者为用户提供直观且易于操作的时间和日期选择功能。通过结合使用`DatePickerDialog`和`TimePickerDialog`,我们可以方便地在应用中集成这些功能。同时,根据需求,我们还可以...
在Android开发中,基本控件是构建用户界面的基础元素,它们允许用户与应用程序进行交互。...通过学习和理解这个示例代码,开发者可以更好地掌握Android基本控件的用法,从而创建更丰富的用户界面。
综上所述,获取Android控件的宽高有多种方式,具体选择哪种取决于应用场景和需求。压缩包“android获取控件宽高.rar”可能包含了一些实用的示例,帮助开发者更深入地理解和使用这些方法。在实际开发中,结合具体场景...
Android中获取控件宽高的4种方法集合 Android手机应用程序开发中,获取控件的宽高是一项非常重要的任务。今天,我们将分享四种获取控件宽高的方法,希望能够对Android开发者提供有价值的参考。 方法1:...
总结,`WheelView`作为Android开发中的一个强大工具,为开发者提供了丰富的选项和定制能力,使得滚动选择控件的设计和实现变得更加灵活和便捷。在实际项目中,熟练掌握`WheelView`的使用,能够显著提升应用的交互性...
"获取XML中使用的控件(Version 0.1)"工具就是为了解决这个问题而诞生的。它能自动读取XML文件,解析出所有控件及其属性,并生成与之对应的Java代码。这样,开发者只需将生成的代码粘贴到项目中,就可以直接使用了,...