Android 在Oncreate中获取控件的高度

@Override 
  public void onCreate(BundlesavedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main); 
      finalImageView imageView = (ImageView) findViewById(R.id.imageview);       
      int w=View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); 
      int h=View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); 
      imageView.measure(w, h); 
      intheight =imageView.getMeasuredHeight();
      intwidth =imageView.getMeasuredWidth();
      textView.append("\n"+height+","+width);
      System.out.println("执行完毕.."+System.currentTimeMillis()); 
  }
//------------------------------------------------方法一 
int w =View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); 
int h =View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); 
imageView.measure(w, h); 
int height=imageView.getMeasuredHeight(); 
int width=imageView.getMeasuredWidth(); 
textView.append("\n"+height+","+width); 
//-----------------------------------------------方法二 
ViewTreeObserver vto =imageView.getViewTreeObserver(); 
vto.addOnPreDrawListener(newViewTreeObserver.OnPreDrawListener() { 
    public booleanonPreDraw() { 
        int height =imageView.getMeasuredHeight(); 
        int width =imageView.getMeasuredWidth(); 
        textView.append("\n"+height+","+width); 
        return true; 
   
}); 
//-----------------------------------------------方法三   
ViewTreeObserver vto2 = imageView.getViewTreeObserver();   
vto2.addOnGlobalLayoutListene r(new OnGlobalLayoutListener(){ 
    @Override   
    public voidonGlobalLayout() { 
        imageView.getViewTreeObserver().removeGlobalOnLayoutList ener(this);   
        textView.append("\n\n"+imageView.getHeight()+","+imageView.getWidth()); 
     
});  
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值