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.addOnGlobalLayoutListener(new OnGlobalLayoutListener(){ 
    @Override  
    public voidonGlobalLayout() { 
      imageView.getViewTreeObserver().removeGlobalOnLayoutListener(this);  
      textView.append("\n\n"+imageView.getHeight()+","+imageView.getWidth()); 
    }  
});  
  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章