2014-07-27 3 views
0

ImageView를 onClickListener()를 통해 다른 ImageView의 동일한 위치로 이동하려고하는데 x는 반환 할 수 있지만 y는 반환 할 수 없습니다.내 getY()가 0을 반환하는 이유는 무엇입니까?

복사 할보기 위치는 XML의 다른 레이아웃에있는 것이고, 하나는 상대 레이아웃이고 다른 하나는 상대적으로 선형입니다.

은 화면 가장자리 대신 레이아웃에서 위치를 기준으로 y 위치를 확인하기 때문에입니까?

public class LevelTwo extends Activity { 


ImageView iv1,iv2,iv3; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.main); 




    iv1 = (ImageView) findViewById(R.id.imageView1); 
    iv2 = (ImageView) findViewById(R.id.imageView2); 


    iv1.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 


      iv1.setY(iv2.getY()); 
      iv1.setX(iv2.getX()); 





     } 
    }); 

} 


} 

는 XML 레이아웃은 레이아웃 대신 화면 가장자리의 위치에 기초하여, y 위치를 확인하기 때문에,이

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 





    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="35dp" 
     android:layout_height="35dp" 
     android:src="@drawable/wtsa" 
     android:layout_below="@+id/layout1" 

     /> 


<LinearLayout 
     android:id="@+id/layout1" 
     android:layout_height="wrap_content" 
     android:layout_width="fill_parent" 
     android:orientation="horizontal" 
     android:gravity="center" 
     > 

     <ImageView 
      android:id="@+id/imageView3" 
      android:layout_width="55dp" 
      android:layout_height="55dp" 
      android:src="@drawable/wtsblank" 
      /> 
+0

당신의 문제는 ... 당신의 XML에서 "imageView2"id가없는 imageview가 있다고 생각합니다. – AndikaK

+0

죄송합니다 그게 내 복사 및 붙여 넣기에 나쁘지 만 3 질문을 위해서만 사용했다. – Timinycricket

답변

0

같은 그것을이다?

네, 맞습니다.

getY()은이보기의 시각적 y 위치를 픽셀 단위로 반환합니다. 이는 translationY 속성과 현재 top 속성을 더한 것과 같습니다. top 속성은 상위에 대한이 뷰의 위쪽 위치입니다.

+0

고마워. 그래서 어떻게 Y를 올바른 위치에 놓을 수 있습니까? 상위 레이아웃의 y로 설정합니까? 그리고 그것과 같은 것? – Timinycricket

+0

네, 귀하의 경우에는 'layout1' 포지션을 취할 수 있습니다 –

+0

감사합니다! 그것은 작동합니다 – Timinycricket

관련 문제