2012-03-30 1 views
23

과 관련하여 수직 텍스트 뷰의 텍스트를 중심으로 나는이 구성 요소를 가지고 :의 drawableLeft 이미지

<TextView 
    android:id="@+id/item_name" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:drawableLeft="@drawable/icon" /> 

drawableLeft 속성의 이미지가 텍스트의 글꼴보다 큰, 그래서 텍스트와 관련하여 수직 중심 원하는 이미지에. 이 효과를 얻으려면 어떻게해야합니까?

답변

79

"중력"을 사용하려면 레이아웃 중력과 혼동하지 말아야합니다. 레이아웃 중력은 전체 텍스트 뷰를 이동 시키지만 중력은 텍스트 뷰 내에서 텍스트를 이동합니다.

<TextView 
    android:id="@+id/item_name" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:drawableLeft="@drawable/icon" 
    android:gravity="center_vertical" /> 
+1

감사합니다. 이전에 layout_gravity를 시도했지만 작동하지 않았고 차이점을 알지 못했지만 이제는 괜찮습니다. – user940016

+0

대단히 감사합니다 ... 그것은 나를 위해 잘 작동합니다. – xFighter

0

당신은 모두 DrawableRelativeLayout 내부 TextView과 당신의 TextViewlayout_alignBaseline 속성을 사용하여 배치해야합니다.

또한 단지 두 항목을 배치 할 수 있습니다, DrawableTextView 당신의 TextViewlayout_gravity="center_vertical"horizontal 방향으로 LinearLayout 내부와 layout_height="wrap_content" 및 사용합니다.

android:includeFontPadding="false" 
+0

android 사용 : 중력은 더 깨끗하고 빠른 방법이 될 수 있습니다. 그러나 이것은 플라이에서 이미지 크기를 조정할 수있는 유연성을 조금 더 줄 것입니다. – Merkidemis

+0

감사합니다. , 아이콘이 작기 때문에 drawableLeft를 사용하고 싶지 않았으며 대신 ImageButton을 원했습니다. 나는 네가 대답 할 때까지 주변을 어지럽히고 있었다. Upvoted. – span

27

텍스트 액센트에 대해서만 android:includeFontPadding="false"을 시도하십시오. 여분의 상단 및 하단 패딩을 제거 할 것입니다 TextView. android:gravity="center_vertical"에 대해서는 코드에 아무런 영향을 미치지 않습니다.

+6

고마워요, 이것과 함께 '안드로이드 : 중력'을 해결했습니다! – joscarsson

+2

네, 저 역시 저를 도와줍니다! 정말 고맙습니다! –

0

것은 당신이 상관하지 않는 경우 : 중력을 설정하는 것 외에,이 또한 불평등 될 수있는의 텍스트 뷰의 상단과 하단에 패딩을 줄임으로써 어떤 상황에서 정렬에 도움을 줄 수

관련 문제