2011-11-23 32 views
0

宽度我写了下面的xml:安卓:关于此微的RelativeLayout的

<RelativeLayout> 
    <LinearLayout> 
    ......//widgets 
    </LinearLayout> 
    <ImageView 
android:id="@+id/img" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:src="@drawable/pic" 
/> 
    </RelativeLayout> 

而在代码中,我想要得到的IMG的宽度。但总是得到。 为什么? 在此先感谢! PS:对不起,我忘了添加android:src="...";但它仍然是0!

+0

如何获取图像宽度 –

回答

0

你得到0你宽度,因为你:

  1. wrap_contentlayout_width
  2. 没有指定src属性,这意味着没有像你ImageView
设置

由于空图像的大小为0,并且您有wrap_content,因此您会得到0

0

我想你正试图在onCreate方法中获取宽度。如果是这种情况,用户界面还没有开始绘制,UI元素没有被测量,所以imageView.getWidth()应该返回0.为了获得onCreate方法的宽度,这应该工作。将代码放在onCreate方法中。

ViewTreeObserver vto = imageView.getViewTreeObserver(); 
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 
    @Override 
    public void onGlobalLayout() { 
     imageView.getViewTreeObserver().removeGlobalOnLayoutListener(this); 
     Log.e("Width",Integer.toString(imageView.getWidth())); 

    } 
}); 

但你必须先指定否则ImageView的图像宽度为0,因为其中没有包裹ImageView的周围。

+0

感谢您的回答。但是我发现这种方法在我需要之前无法获得宽度。 –