2012-01-04 3 views
3

나는 항상 레이아웃의 텍스트를 정렬하는 데 가장 큰 문제가있는 것처럼 보입니다. TextView가 텍스트를 제대로 측정하지 않는 것 같습니다. 보고 된 TextView 너비와 높이가 실제 텍스트보다 훨씬 큽니다. TextView 너비와 높이가 텍스트 주위를 단단히 감싸고 있어야합니다.TextView 텍스트 변형은 끔찍한 일입니다! 어떻게 해결할 수 있을까요?

아래 이미지는 숫자 18과 텍스트 "SEC"가 동일한 하단 기준선에 정렬되지 않는 방법을 보여줍니다. 이것은 텍스트보다 큰 텍스트 높이가 크기 때문입니다. 내 XML 레이아웃은 아래에서 볼 수 있습니다.

더 나은 텍스트 정렬 정확도를 달성하는 방법은 무엇입니까?

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1" 
    android:background="@drawable/scan_block_1_bg" > 

    <LinearLayout 
     android:id="@+id/staticCountDown" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:gravity="center" 
     android:orientation="vertical" > 

     <TextView 
      android:id="@+id/tvStaticScanning" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:shadowColor="#ffffff" 
      android:shadowDy="1.0" 
      android:shadowRadius="0.01" 
      android:text="SCANNING" 
      android:textColor="#878787" 
      android:textSize="20sp" /> 

     <TextView 
      android:id="@+id/tvCountDown" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:shadowColor="#66000000" 
      android:shadowDy="-1.0" 
      android:shadowRadius="0.01" 
      android:text="03" 
      android:textColor="#b6b6b6" 
      android:textSize="81sp" /> 
    </LinearLayout> 

    <TextView 
     android:id="@+id/tvStaticSeconds" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@id/staticCountDown" 
     android:layout_toRightOf="@id/staticCountDown" 
     android:gravity="left" 
     android:shadowColor="#ffffff" 
     android:shadowDy="1.0" 
     android:shadowRadius="0.01" 
     android:text="SEC" 
     android:textColor="#878787" 
     android:textSize="12sp" /> 
</RelativeLayout> 

enter image description here

답변

1

사용자가 제공 한 스크린 샷 모두 textviews를 보면이 들릴 수만큼 이상한 동일한 밑면 기초 정렬. TV 카운트 다운에 글자 "gj"를 넣으십시오. 당신은 실제로 양쪽이 같은 바닥 밑 맞춤을 갖게 될 것을 볼 수 있습니다. Padma Kumar의 대답이 더 좋습니다.

+0

고마워, 나는 그걸로 뭔가 관계가 있다고 생각하기 시작했다. TextView android : includeFontPadding에 대한 옵션이 있다는 것을 알았지 만, 맨 아래의 덧씌우지만 맨 아래는 제거하는 것처럼 보인다. 그러한 기능에 대한 유사한 옵션입니다 ... 앞으로 몇일 안에 새로운 대답이 주어지지 않는다면 Kumar가 올바른 대답으로 간주 될 것입니다 ... – Jona

+0

공백에 대한 원인을 언급 한 이후로 귀하의 대답이 정확한 것 같습니다. . 기준선을 기준으로 텍스트를 정렬하는 방법이 있었으면 좋겠습니다. – Jona

4

// 당신의 텍스트 뷰에서이 속성을 사용

android:layout_alignBaseline="@id/staticCountDown" 

android:layout_marginBottom="-10dp"

+0

기술적으로는 텍스트와 일치시키기 위해 패딩을 추가 할 필요가 없습니다. TextView는 실제 텍스트보다 훨씬 큰 폭과 높이를보고합니다. 이것이 텍스트 정렬과 관련된 문제입니다. 내가 실제로 생각하는 레이아웃 문제는 아닙니다. – Jona

+0

실제로 'marginBottom'이 필요하지 않습니다.'alignBaseline'만으로 충분합니다. OP는'alignBottom'을 질문에 포함 시켰고, 스크린 샷에서 보았습니다. – TWiStErRob

관련 문제