2011-12-11 8 views
25

TextView에 문제가 있습니다. 나는 그 위에 여백/패딩을 갖고 싶지 않습니다.TextView 위쪽 여백을 제거하는 방법?

<TextView android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/ptp_hour" 
      android:textColor="@color/black" 
      android:textSize="100dp" 
      android:height="100dp" 
      android:layout_marginTop="0dp" 
      android:paddingTop="0dp" 
      android:includeFontPadding="false" 
      android:maxLines="1" 
      android:text="10"/> 

TextView이 좋아하고 textSizeheight (가) 같은 값으로 설정에도 불구하고 외모, 글꼴 위의 공간이있다. 글꼴의 맨 위에 상대적으로 다른보기를 배치하기 때문에 문제가됩니다. 이 간격은 글꼴 자체에 포함됩니까?

TextView in RelativeLayout

그리고 또 다른 질문

: 나는 최고 내 장치에서 완벽하게 작동 바닥에서 7dp에서 그 여백 20dp를 발견하는 경우, 나는 그것이 다른 화면에 비슷한 방식으로 행동 할 것을 의존 할 수 있습니까? (이 여백은 버튼 용)

+0

당신이있어 무엇의 이미지를 게시 할 수 : 나는 적당한 시간에 찾을 수있는 가장 좋은 방법은 텍스트 뷰의 onDraw 메소드를 오버라이드 (override)하고 폰트 메트릭스 '상단과 상승 값 사이의 차이를 캔버스를 조정했다 봄? –

+0

예 이미지를 게시하십시오 –

+0

글꼴에 위쪽 간격이있을 수 있습니다. 높이를 100dp로 유지하면서 textSize (102dp 또는 105dp 등)를 늘리십시오. – Squonk

답변

43

android:includeFontPadding="false"을 사용하면 비슷한 상황에서 많은 도움이되었습니다.

+0

감사! 이 고정 된 내 글꼴을 제대로 내 TextView 맨 정렬하지 않습니다. – TSL

+1

고마워, 내가 뭘 찾고 있었는지. 이것은 기본적으로 이루어져야합니다. – HGPB

+10

조금 작동하지만 내 문제를 완벽하게 해결할 수 없습니다. –

2

다른보기를 글꼴의 맨 위에 상대적으로 놓고 dip의 음수를 android:layout_marginBottom으로 지정하여 글꼴의 맨 위에 일치시킵니다. 글꼴에 여백이 있으면 더 나은 방법이 있다고 생각하지 않습니다.

1

예이 공간은 기본적으로 포함되어 있습니다. 검색 영역 당 공간을 제거 할 수 없습니다. 따라서 그러한 견해를 가지려면 약간의 논리를 구현해야합니다.

enter image description here

그것의 좋은 생각을하지만 코드를 아래와 같이 수행 할 수 있습니다 :

는 이미지 아래를 참조하십시오 여기에

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="wrap_content" android:layout_width="wrap_content" 
    android:background="#ffffff"> 
    <TextView android:layout_width="wrap_content"   
     android:layout_height="wrap_content"   
     android:id="@+id/ptp_hour"   
     android:textColor="@android:color/black"   
     android:textSize="100sp" 
     android:lineSpacingMultiplier="0.8" 
     android:scrollY="-100dp" 
     android:scrollX="100dp" 
     android:text="10"/> 
    <TextView 
     android:text="10" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:textColor="#00FFFFFF" 
     android:shadowColor="#000000" 
     android:shadowDy="-50" 
     android:shadowRadius="1" 
     android:textSize="100dp"/> 

</LinearLayout> 

, 최초의 "10"당신의 속성과 두 번째입니다 내가 당신을 위해 준비한 것입니다.

즐기십시오. :))

+0

업데이트 된 답변보기 –

+0

android : lineSpacingExtra를 음수 값으로 설정하면 동일한 결과를 얻을 수 있습니다. 그러나 둘 다 TextView가 g, q, p와 같은 범위 밖의 문자를 잘라내는 문제가 있습니다. –

+0

재밌는 해킹이라고 생각합니다. 그러나 내가 밑바닥 여분 공간을 역시 제거하고 싶으면 유용하지 않다. – user3390963

9

android:includeFontPadding=false 설정이 도움이되지 않는 곳에서 동일한 문제가 발생했습니다.

FontMetricsInt fontMetricsInt; 
@Override 
protected void onDraw(Canvas canvas) { 
    if (adjustTopForAscent){ 
     if (fontMetricsInt == null){ 
      fontMetricsInt = new FontMetricsInt(); 
      getPaint().getFontMetricsInt(fontMetricsInt); 
     } 
     canvas.translate(0, fontMetricsInt.top - fontMetricsInt.ascent); 
    } 
    super.onDraw(canvas); 
} 
+0

이것은 거의 작동합니다. 작은 글꼴이있는 TextView에서는 완벽하게 정렬됩니다. 74sp 폰트로 그리 많지는 않습니다. 그러나이 좋은 해결책 +1. –

관련 문제