2011-12-01 4 views
0

저는 홈 화면에 머리말과 꼬리말이 있고 그 사이에 표시 할 텍스트 행이 10 개 있습니다. 텍스트 크기는 하드 코딩 된 자바 있지만 응용 프로그램을 실행할 때 바닥 글 고정 텍스트 크기로 조정하려면 늘어납니다 가져옵니다. 그러나 그것이 뻗었을 때 이상하게 보입니다. 화면을 기반으로 텍스트 크기를 동적으로 할당하는 방법이 있습니까? 이걸 좀 도와주세요. 이미지를 보면 푸터 문제를 이해할 수 있습니다.안드로이드에서 다른 화면 해상도에 맞게 텍스트 크기를 동적으로 수정하는 방법

if (dpiClassification == DisplayMetrics.DENSITY_HIGH) { 
     if (isTablet) { 
      textSize = (int) (((d.getHeight() - (totImageHeight))/10) - (25 * dm.density)); 
     } else { 
      textSize = (int) (((d.getHeight() - (totImageHeight))/10) - (11 * dm.density)); 
     } 

    } else if (dpiClassification == DisplayMetrics.DENSITY_MEDIUM) { 
     if (isTablet) { 
      textSize = 90;// (int) (((d.getHeight() - (totImageHeight))/
          // 10) - (15 * dm.density)); 
     } else { 
      textSize = (int) (((d.getHeight() - (totImageHeight))/10)); 
     } 
    } else { 
     textSize = (int) (((d.getHeight() - (totImageHeight))/10)); 
    } 
+0

텍스트 크기로 px 대신 SP 단위를 사용해보십시오. – Warpzit

+0

@ Pink 혹시라도이 사람과 똑같습니까? (http://stackoverflow.com/users/991423/pink-candy)? – Reno

+0

예 reno, 나는 어떤 이유로 그 계정에 액세스 할 수 없었습니다. 왜 새 계정을 만들었습니까? 죄송합니다. – cavallo

답변

2

봅니다 DP에서 텍스트 크기를 설정하고 동적으로 PX에 DP를 변환하고 난 다음 코드를 사용 변환하려면

*.textSize(pxValue); 

이 PX 값을 넣어 :

private static DisplayMetrics metrics = null; 
private static float density = 0.0; 

private int dpToPxConverter(Context context, int dp){ 
     if (metrics == null) { 
      metrics = context.getResources().getDisplayMetrics(); 
      density = metrics.density; 
     } 
     return (int) (density * dp + 0.5f); 
    } 

가 희망을 도와주세요!

관련 문제