android-检索视图的规模尺寸问题

问题描述

检索视图的规模尺寸问题

我有一个视图由tablelayout、tablrows和textviews组成。看起来像一个网格。我需要得到这个网格的高度和宽度。当我动态的格式化网格或使用xml版本时,方法getheight() and getwidth()总是返回0。
谁能告诉我如何检索一个试图的尺寸规模?
以下是我在Debug的测试程序:

    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.TableLayout;
    import android.widget.TextView; 

    public class appwig extends Activity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.maindemo);
          int vh = 0;
          int vw = 0; 

          TableLayout tl = (TableLayout) findViewById(R.id.board);
          tl = (TableLayout) findViewById(R.id.board);
          vh = tl.getHeight();
          vw = tl.getWidth();       

          TextView tv = new TextView(this);
          tv.setHeight(20);
          tv.setWidth(20);
          vh = tv.getHeight();
          vw = tv.getWidth();
        }
}

解决方案

把这些代码添加到onCreate()方法:

final TextView tv = (TextView)findViewById(R.id.image_test);
    ViewTreeObserver vto = tv.getViewTreeObserver();
    vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {

        @Override
        public void onGlobalLayout() {
            LayerDrawable ld = (LayerDrawable)tv.getBackground();
            ld.setLayerInset(1, 0, tv.getHeight() / 2, 0, 0);
            ViewTreeObserver obs = tv.getViewTreeObserver();
            obs.removeGlobalOnLayoutListener(this);
        }

    });

解决方案二:

我提供一个可选择的方案,重写活动中的onWindowFocusChanged方法,然后从下面代码中读出。

@Override
public void onWindowFocusChanged (boolean hasFocus) {
        // 这儿会设置高度
        int height = myEverySoTallView.getMeasuredHeight();
}
时间: 2025-01-26 15:48:33

android-检索视图的规模尺寸问题的相关文章

Android自定义视图二:如何绘制内容

这个系列是老外写的,干货!翻译出来一起学习.如有不妥,不吝赐教! Android自定义视图一:扩展现有的视图,添加新的XML属性 Android自定义视图二:如何绘制内容 Android自定义视图三:给自定义视图添加"流畅"的动画 Android自定义视图四:定制onMeasure强制显示为方形 有的时候自持扩展一个标准的Android视图是不够的.你需要在视图上绘制你自己的内容才行.本文将会讲述如何使用Canvas类来绘制一个折线图,并会讲述如何处理尺寸和padding. 如果你还没

Android自定义视图三:给自定义视图添加“流畅”的动画

这个系列是老外写的,干货!翻译出来一起学习.如有不妥,不吝赐教! Android自定义视图一:扩展现有的视图,添加新的XML属性 Android自定义视图二:如何绘制内容 Android自定义视图三:给自定义视图添加"流畅"的动画 Android自定义视图四:定制onMeasure强制显示为方形 在第二部分我们实现了一个简单的折线图.这里假设你已经读了前篇.下面我们将继续为这个折线图添砖加瓦. 我在想给这个图的上方添加三个按钮,这样用户可以点选不同的按钮来查看不同类别的数据.比如,用户

Android自定义视图一:扩展现有的视图,添加新的XML属性

这个系列是老外写的,干货!翻译出来一起学习.如有不妥,不吝赐教! Android自定义视图一:扩展现有的视图,添加新的XML属性 Android自定义视图二:如何绘制内容 Android自定义视图三:给自定义视图添加"流畅"的动画 Android自定义视图四:定制onMeasure强制显示为方形 简介 这个系列详细的介绍了如何穿件Android自定义视图.主要涉及的内容有如何绘制内容,layout和measure的原理,如何继承实现view group以及如何给其子视图添加动画.第一篇

Android自定义视图四:定制onMeasure强制显示为方形

这个系列是老外写的,干货!翻译出来一起学习.如有不妥,不吝赐教! Android自定义视图一:扩展现有的视图,添加新的XML属性 Android自定义视图二:如何绘制内容 Android自定义视图三:给自定义视图添加"流畅"的动画 Android自定义视图四:定制onMeasure强制显示为方形 上一篇开发之后的效果如上图.不过看着这张图,需要注意的不是我们自定义视图展示了什么,而是这个视图的大小和位置.你会看到这个折线图有一个特定的大小(size).这个size是怎么定的呢?现在的代

android view视图的层叠(叠加)

第一种情况:google android textview drawable 参考:            setCompoundDrawable to add Drawables to TextView http://mgmblog.com/2010/06/04/setcompounddrawable-to-add-drawables-to-textview/ 上面是给出TextView添加Drawables时调用的方法 第二种情况: 而在图像之中想要添加文字,而又不想用一个又一个的view进

浅谈Android中视图动画的属性与使用_Android

简介 Android动画主要包括视图动画和属性动画,视图动画包括Tween动画和Frame动画,Tween动画又包括渐变动画.平移动画.缩放动画.旋转动画. Tween动画的基本属性       目标 View:       时常 duration;       开始状态 fromXXX;       结束动画 toXXX;       开始时间 startOffset;       重复次数 repeatCount;       时间轴 interpolator(插值器). 代码示例 xml实

浅谈Android中视图动画的属性与使用

简介 Android动画主要包括视图动画和属性动画,视图动画包括Tween动画和Frame动画,Tween动画又包括渐变动画.平移动画.缩放动画.旋转动画. Tween动画的基本属性 目标 View: 时常 duration; 开始状态 fromXXX; 结束动画 toXXX; 开始时间 startOffset; 重复次数 repeatCount; 时间轴 interpolator(插值器). 代码示例 xml实现 <?xml version="1.0" encoding=&qu

Android网格视图GridView的使用

GridView(网格视图)是按照行列的方式来显示内容的,一般用于显示图片,图片等内容,比如实现九宫格图,用GridView是首选,也是最简单的.主要用于设置Adapter. 网格视图GridView的排列方式与矩阵类似,当屏幕上有很多元素(文字.图片或其他元素)需要按矩阵格式进行显示时,就可以使用GridView控件来实现. GridView常用的XML属性: 本文将以一个具体的实例来说明如何使用GridView控件实现手机屏幕上各个应用软件图标的摆放,以及应用软件名称的显示. 完成后的程序运

android app icon 图标大小尺寸_Android

在android程序中,在drawable中设置好图标后,但结果在小米2可没有显示出来,但在我自己的htc中和模拟器中显示正常.后来发现小米的dpi不一样. 后来发现,android为了适应不同的分辨率和dpi,加载了一系列的图标. LDPI (Low Density Screen,120 DPI),其图标大小为 36 x 36 px. MDPI (Medium Density Screen, 160 DPI),其图标大小为 48 x 48 px. HDPI (High Density Scre