myq_26 2012-10-22 06:51 采纳率: 16.7%
浏览 2059
已采纳

检索视图的规模尺寸问题

我有一个视图由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();    
        } 
} 
  • 写回答

2条回答 默认 最新

  • znl_12 2012-10-25 09:38
    关注

    把这些代码添加到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);
            }
    
        });
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100