2011-04-12 9 views
0

imagebutton에 문제가 있습니다. centerinparent를 지정할 때 이미지가 올바르게 정렬되지 않습니다. 당신이하여 ImageButton의 수직 정렬을 볼 수 있듯이Imagebutton layout_center_inparent problem

<LinearLayout 
     android:layout_width="match_parent" android:layout_marginTop="4dp" 
     android:layout_marginLeft="4dp" android:layout_marginRight="4dp" 
     android:layout_height="50dp" android:background="#FF0000"> 

     <RelativeLayout android:layout_height="match_parent" 
      android:layout_width="40dp" android:background="#0000FF"> 
      <ImageView android:id="@+id/imgType" 
       android:layout_centerInParent="true" android:layout_width="wrap_content" 
       android:src="@drawable/type_text" android:layout_height="wrap_content" /> 
     </RelativeLayout> 

     <RelativeLayout android:layout_height="match_parent" 
      android:layout_width="match_parent" android:layout_weight="1"> 
      <LinearLayout android:orientation="vertical" 
       android:layout_height="match_parent" android:layout_width="match_parent"> 
       <TextView android:layout_width="match_parent" 
        android:textColor="#686a68" android:layout_height="match_parent" 
        android:textSize="15dp" android:text="Manifest : Text" 
        android:ellipsize="end" android:singleLine="true" 
        android:layout_weight="1" /> 

       <TextView android:layout_width="match_parent" 
        android:textColor="#686a68" android:layout_height="match_parent" 
        android:textSize="15dp" android:id="@+id/txtTitle" android:text="[TEXT NAME]" 
        android:layout_weight="1" android:singleLine="true" 
        android:ellipsize="end" /> 
      </LinearLayout> 
     </RelativeLayout> 

     <RelativeLayout android:layout_height="match_parent" 
      android:layout_width="60dp" android:background="#00FF00"> 
      <ImageButton android:src="@drawable/type_text" 
       android:layout_height="48dp" android:layout_centerInParent="true" 
       android:layout_width="48dp" android:id="@+id/butEdit" /> 
     </RelativeLayout> 

    </LinearLayout> 

image

은 옳지 않다.

왜 이렇게하고 있습니까?

+1

대신 'android : gravity = "center"'를 시도 했습니까? – rajath

+0

안녕하세요. Yip도 똑같은 일을합니다. – Pintac

답변

0

에뮬레이터와 계층 뷰어 도구 (SDK의 "tools"폴더에 있음)를 사용하여 목록에서 응용 프로그램을 클릭하고 "뷰 계층로드"를 선택 했습니까? 문제 컨트롤 & 양쪽 모두의 여백과 패딩을 살펴보십시오. 또한 다양한 구성 요소의 너비를 살펴보면 문제가 발생한 위치를 알 수 있습니다.

또한 @ drawable/type_text의 드로어 블에 인식 가능한 오프셋을 일으킬 수있는 공백이 포함되어 있지 않은지 확인하십시오 (드물 긴하지만 생각합니다).

때때로 이미지 크기를 조절하는 데 이상한 문제가 발생했습니다. 따라서 @ drawable/type_text가 48x48 픽셀이 아닌 경우 수동으로 크기를 조정하여 Photoshop/GIMP/PSP에서 원하는 크기로 조정하고 차이가 있는지 확인해보십시오.

또는 제어 센터하려고 중력을 사용해보십시오 : 개별 안드로이드를 조정 시도 실패

<LinearLayout android:layout_height="match_parent" android:gravity="center" 
    android:layout_width="wrap_content" android:background="#00FF00"> 
    <ImageButton android:src="@drawable/type_text" 
     android:layout_height="48dp" android:layout_width="48dp"        
     android:layout_margin="12dp" android:id="@+id/butEdit" /> 
</LinearLayout> 

다른 모든 경우 : :

<LinearLayout android:layout_height="match_parent" android:gravity="center" 
    android:layout_width="60dp" android:background="#00FF00"> 
    <ImageButton android:src="@drawable/type_text" 
     android:layout_height="48dp" 
     android:layout_width="48dp" android:id="@+id/butEdit" /> 
</LinearLayout> 

아니면을로하여 ImageButton의 layout_margin이 * 속성 시도하고 강제로.

이 정보가 도움이되기를 바랍니다.

+0

yip 이미지 버튼에는 펑키 한 패딩이 있습니다. 둘 다 시도하고 padding을 0dp로 설정하려고했습니다. – Pintac

+0

이미지의 패딩 버튼은 테두리와 이미지 사이의 거리 (즉, 버튼 테두리 안쪽)를 제어합니다. 여백은 테두리와 부모 사이의 거리 (즉, 버튼 테두리 외부)를 제어합니다. 따라서 패딩 대신 여백 설정을 살펴보십시오. 또는 ImageButton의 부모 인 [상대 | 선형] 레이아웃의 패딩을 살펴보십시오. –

+0

재미있는 것은 imagebutton에는 여백 만 패딩이없고 상대 레이아웃에는 아무 것도 없다는 것입니다. – Pintac