2011-02-11 21 views
8

我在LinearLayout中有一個ImageView對象。我正在爲ImageView設置一個動畫,這會將圖像視圖從點x移動到y。現在,起點應該是父容器的右上角。我的問題是,如何獲取視圖所在容器的維度。我沒有看到view.getParent()。getWidth()在視圖層次中的一種方法。如何獲得在Android中添加我的視圖的容器的寬度

回答

3

也許你並不需要,因爲你可以使用%的動畫是這樣的:

<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> 
<translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="150" /> 

25

試試這個:

View parent = (View)view.getParent(); 
int width = parent.getWidth(); 
+4

將onResume方法 – prashant 2011-02-11 14:06:10

+0

中的空指針調用getWidth提前,尚未繪製。你必須添加ViewTreeObserver.OnGlobalLayoutListener來監聽它何時被繪製 – Karoly 2017-07-14 17:22:45

1

呼叫後在父視圖中添加視圖,否則你會這個exeption java.lang.NullPointerException:試圖調用虛擬方法'int android.view.View.getHeight()'

int height = ((View) view.getParent()).getHeight(); 
    int width = ((View) view.getParent()).getWidth(); 

    int mHeight = ((View) view.getParent()).getMeasuredHeight(); 
    int mWidth = ((View) view.getParent()).getMeasuredWidth(); 
相關問題