`

控件getHeight和getWidth等于0的解决办法

 
阅读更多
//监听layoutContainer是否初始化完成
		layoutContainer.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener()
		{
			@Override
			public void onGlobalLayout()
			{
				//OnGlobalLayoutListener可能会被多次触发,因此在得到了高度之后,要将OnGlobalLayoutListener注销掉
				layoutContainer.getViewTreeObserver().removeOnGlobalLayoutListener(this);
				//设置容器的宽、高
				LayoutCalculator.getInstance().init(layoutContainer.getWidth(), layoutContainer.getHeight());
				//初始化容器
				initContainer();
			}
			
		});
分享到:
评论

相关推荐

    android代码中获取控件高,宽度并修改

    总结来说,Android开发中获取和修改控件尺寸是通过`onMeasure()`、`onLayout()`、`onDraw()`以及`ViewTreeObserver`等方法来实现的。而修改尺寸则可通过设置`LayoutParams`、使用动画或Transition API等方式,确保在...

    圆形图片自定义控件

    在Android开发中,自定义控件是提升应用界面独特性和用户体验的重要手段。本文将深入探讨如何创建一个圆形图片自定义控件,同时介绍如何设置边线圆环的颜色、宽度以及图片填充色等特性。 首先,我们需要创建一个新...

    自定义控件中一个时钟控件

    本文将深入探讨如何创建一个自定义时钟控件,类似于传统的时钟,能够实时显示系统时间,包括时针、分针和秒针。我们将基于Android Studio进行讲解,这对于初学者来说是一个很好的实践项目。 首先,我们需要创建一个...

    android获取控件宽高

    在这个方法中,可以通过`setMeasuredDimension()`来设定控件的测量宽度和测量高度。例如: ```java @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure...

    动态的设置或者获取控件的长和宽

    - `getWidth()`和`getHeight()`:这两个方法返回控件的实际显示尺寸,包括内边距。它们在`onLayout()`之后才能获取到准确值。 4. **注意点**: - 尽量避免在`onCreate()`中频繁更改控件尺寸,因为这可能影响性能...

    VS2013MFC获取鼠标位于picture控件实时坐标,和点击处坐标

    dc.BitBlt(0, 0, bitmap.GetWidth(), bitmap.GetHeight(), &memDC, 0, 0, SRCCOPY); memDC.SelectObject(pOldBitmap); } ``` 3. **处理鼠标消息**:为了获取鼠标的实时坐标和点击坐标,我们需要处理WM_MOUSEMOVE...

    android 可拖动控件

    可以使用`ViewGroup`的`getLeft()`, `getTop()`, `getWidth()`, 和 `getHeight()`方法来获取父视图的边界,然后确保控件的新位置在其范围内。 5. 触摸事件分发: 默认情况下,触摸事件会按照控件层次结构自上而下...

    Android 拖拽控件交换位置

    可以使用`View`的`getLeft()`、`getTop()`、`getRight()`和`getBottom()`方法,结合`ViewGroup`的`getWidth()`和`getHeight()`来判断是否越界,并进行相应的调整。 此外,为了提供更好的用户体验,可以添加一些视觉...

    VC中GDI方法在Picture控件中显示PNG、bmp、jpg图片

    dc.BitBlt(m_PictureCtrl.GetClientRect().left, m_PictureCtrl.GetClientRect().top, bitmap.GetWidth(), bitmap.GetHeight(), &memDC, 0, 0, SRCCOPY); // 恢复DC memDC.SelectObject(pOldBitmap); } ``` 在...

    VC中图像控件的用法与总结

    dc.BitBlt(0, 0, bitmap.GetWidth(), bitmap.GetHeight(), &memDC, 0, 0, SRCCOPY); // draw bitmap to dialog's DC memDC.SelectObject(pOldBitmap); // restore original bitmap } ``` 五、调整图像控件大小以...

    Android控件拖动

    4. **状态保存与恢复**:为了在屏幕旋转或其他状态改变时保持控件的位置,可以使用SharedPreferences或者View的saveHierarchyState()和restoreHierarchyState()方法。 5. **优化性能**:在处理大量控件拖动时,考虑...

    Android自定义电量控件百分比控制

    canvas.drawRect(0, 0, getWidth(), getHeight(), new Paint(backgroundColor)); // 计算电量条宽度 float batteryWidth = (batteryPercentage / 100f) * getWidth(); // 绘制电量条 canvas.drawRect(0, 0, ...

    MFC实现Button控件打开本地照片显示在Picture控件中

    image.StretchBlt(pDC->m_hDC, 0, 0, sizeCtrl.cx, sizeCtrl.cy, 0, 0, image.GetWidth(), image.GetHeight(), SRCCOPY); // 释放DC ReleaseDC(pDX); } ``` 在这个函数中,我们使用`CImage`类加载图片,然后...

    静态控件自绘显示图片

    dc.BitBlt(0, 0, m_bitmap.GetWidth(), m_bitmap.GetHeight(), &memDC, 0, 0, SRCCOPY); // 恢复原来的位图 memDC.SelectObject(pOldBitmap); } ``` 4. **在对话框或窗口中使用CStaticImage** 在对话框或窗口...

    android 自定义控件的使用.doc

    // 3、横坐标this.getWidth()-1到this.getWidth()-1,纵坐标0到this.getHeight()-1 canvas.drawLine(0, this.getHeight() - 1, this.getWidth() - 1, this.getHeight() - 1, paint); // 4、横坐标0到this....

    android Activity里获取控件的宽高

    - `View.getWidth()` 和 `View.getHeight()`: 这两个方法可以直接获取到控件的宽度和高度,但需要注意的是,它们返回的值是准确的宽高之前,必须确保视图已经完全绘制并且布局已完成。在`onWindowFocusChanged()`...

    安卓 圆角图片控件

    在安卓开发中,实现圆角图片控件是一个常见的需求,它可以用于用户头像、商品图片等展示,提高应用界面的美观度和用户体验。本篇将详细介绍如何在Android中创建一个圆角图片控件,以及相关的技术点。 首先,我们...

    Android-自定义时钟控件

    在Android开发中,自定义控件是提升应用独特性和用户体验的重要手段。本教程将深入探讨如何创建一个自定义的时钟控件。我们将基于Android的基本视图(View)类,通过扩展和重写必要的方法来实现这个功能。 首先,我们...

    Android 自定义控件 继承控件 清除EditText

    if (x > getWidth() - getPaddingRight() - mClearDrawable.getIntrinsicWidth() && y > getPaddingTop() && y < getHeight() - getPaddingBottom()) { setText(""); setCompoundDrawablesWithIntrinsicBounds...

    google官网自定义控件实例

    canvas.drawRect(0, 0, getWidth(), getHeight(), paint); // 绘制文字 paint.setColor(textColor); paint.setTextAlign(Paint.Align.CENTER); canvas.drawText(labelText, getWidth() / 2, (getHeight() - ...

Global site tag (gtag.js) - Google Analytics