2013-07-11 2 views
0

나는 안드로이드 개발의 초심자이며 크기 조정이 다른 레이아웃에서 어떻게 작동하는지 완전히 이해할 수 없습니다. 나는이 템플릿에 책의 미리보기를 배치 할 : 나는 시도했다ImageView를 통해 이미지를 배치하는 올바른 방법은 무엇입니까?

book_template

가 FrameLayout이를 사용하여 구현합니다. 아이디어는 미리보기 이미지의 중심이 정확히 PNG 배경의 중심이 될 것입니다. 여기 코드는 다음과 같습니다

<FrameLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_weight=".5" > 

    <ImageView 
    android:id="@+id/imageView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/book_frame" /> 
    <ImageView 
    android:id="@+id/previewImage" 
    android:layout_width="83dp" 
    android:layout_height="83dp" 
    android:layout_gravity="center_vertical|center_horizontal" 
    android:src="@drawable/abs__ab_bottom_solid_dark_holo" /> 
</FrameLayout> 

내가 원하는 같은 레이아웃 빌더의 결과를 정확히 볼 : 실제 전화에

emulator_result

이 다릅니다

phone_result

다른 해상도에서도 두 변종과 다를 것이라고 생각합니다. 그래서 내 질문은 이러한 이미지를 동기화하는 방법입니다 그래서 어떤 크기 조정 및 왜곡 미리보기가 제대로 커버에 맞게됩니까? 가능한 해결책은 이미지에서 테두리를 제거하고 대신 previewImage에 배치하는 것입니다. 그러나 국경을 제거 할 수없는 응용 분야에는 여러 가지 유사한 사례가 있으므로 모든 항목에 보편적 인 해결책을 찾고 싶습니다.

답변

0

입니다. 레이아웃은 다음과 같습니다.

 <FrameLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight=".5" > 

      <ImageView 
       android:id="@+id/bookFrame" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center_vertical|center_horizontal" 
       android:src="@drawable/book_frame" /> 

      <ImageView 
       android:id="@+id/previewImage" 
       android:layout_width="83dp" 
       android:layout_height="83dp" 
       android:layout_gravity="center_vertical|center_horizontal" 
       android:padding="1dp" 
       android:scaleType="centerCrop" 
       android:src="@drawable/abs__ab_bottom_solid_dark_holo" /> 

      <ImageView 
       android:id="@+id/previewBorder" 
       android:layout_width="83dp" 
       android:layout_height="83dp" 
       android:layout_gravity="center_vertical|center_horizontal" 
       android:src="@drawable/preview_border" /> 
     </FrameLayout> 
0

귀하의 질문에 답변 해 주셨습니다.

다른 화면의 경우 이미지 크기 문제 해상도.

하드 코드 된 것은 항상 이상한 결과를 나타냅니다. android:layout_width="83dp" android:layout_height="83dp"이 코드 조각.

이것을 확인하면 드로어을 (를) 다른 화면으로 관리 할 수 ​​있도록 안내합니다. 여기

하고 그래서 나에게 적합한 솔루션은, 자신의 이미지 뷰에 내부 이미지의 경계를 별도의 사진 위로 레이아웃에 삽입하고 사진에 1DP 패딩을 추가했다 다른 link

관련 문제