2014-10-08 2 views
1

이미지보기 상단 및 왼쪽 위치에 문제가 있습니다.이미지를 볼 위치로 접기 가능 이미지를 그릴 수 있습니다.

내 이미지보기는 상대적 레이아웃의 가운데에 설정됩니다. 나를이기 내가 getleft()getTop() 결과를 사용하는 경우 은 0 0

내 레이아웃 파일은 다음과 같습니다

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/rlMain" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity" > 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" 
     android:scaleType="center" 
     android:src="@drawable/ic_launcher" /> 

</RelativeLayout> 

이 정말 나를 위해 비상이다.

내 문제 : 나는 0, 0으로 변경 이미지보기 위치를 정확하게 이동 및 이미지보기를 확대하고 그 일을하지만, 첫 번째 클릭에 코드를 작성 먼저 변화를 방지하기 위해 내가 기본 위치를 얻으려면

딸깍 하는 소리.

+0

우리에게 당신의 현재 코드를 표시 wrap_content로 설정? 'getLeft()'와'getTop()'를 언제 호출합니까? – Malvin

+0

ID로 내 이미지보기를 정의하고 그 위치를 토스트하고 싶습니다. API 레벨 8에서 이미지보기 위치를 토스트하려면 어떻게해야합니까? –

+0

onCreate에서'getLeft()'와'getTop()'를 호출합니까? – Malvin

답변

1

확실하지 작동하지만, 당신이 시도 할 수 있습니다 :

ImageView img = (ImageView) findViewById(R.id.image_view); 
img.getViewTreeObserver().addOnGlobalLayoutListener(
      new ViewTreeObserver.OnGlobalLayoutListener(){ 

       @Override 
       public void onGlobalLayout() { 

        int left = img.getLeft(); 
        int top = img.getTop(); 
        //Toast the height and top... 
       } 

      }); 

을하기 때문에 이미지는 것 당신이 설명 here

getLeft()

getTop()를 호출 할 때, 따라서 당신은 항상 0을 얻을 것이다 onCreate의 화면에 아직 렌더링 할 수 없습니다

편집

레이아웃 폭과 이미지 뷰의 높이가

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/rlMain" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity" > 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" 
     android:scaleType="center" 
     android:src="@drawable/ic_launcher" /> 

</RelativeLayout> 
+0

고맙지 만 내 문제는 여전히 살아있다. 내 이미지 뷰는 화면의 중앙에 있지만 왼쪽 위는 0을 반환한다. –

+0

xml 레이아웃을 볼 수 있는가? 코드? – Malvin

+0

네, 내 게시물을 편집하겠습니다. –

0

int location [] = 새로운 int [2];

rlBoard.getLocationOnScreen (location);

또한 이미지 뷰의 getX와 getY() 방법을 사용할 수 있습니다하지만 난 당신이 무슨 뜻인지 얻을 경우이 방법은 API에서 11

+0

덕분에이 코드를 설명 할 수 있습니까? 나는 그것을 사용하지 않는다! –

+0

rlBoard는 상대적 레이아웃 객체이며 위치는 정수 배열이며 getLocatiOnScreen 메소드는 화면에 상대적 레이아웃 센터로 배열을 채 웁니다. –

+0

감사합니다. 내 문제는 아직 살아 있습니다! 나는 API 8을 사용하고 런타임에 이미지 뷰 객체 위치를 얻지 못한다 ... :( –

관련 문제