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 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器