Paint.setTextSize ()의 단위 설정 방법
단위를 변경할 수 Paint.setTextSize()
있습니까? 내가 아는 한 픽셀이지만 여러 화면 지원을 위해 DIP에서 텍스트 크기를 설정하는 것을 좋아합니다.
다음과 같이 변환하십시오.
// The gesture threshold expressed in dip
private static final float GESTURE_THRESHOLD_DIP = 16.0f;
// Convert the dips to pixels
final float scale = getContext().getResources().getDisplayMetrics().density;
mGestureThreshold = (int) (GESTURE_THRESHOLD_DIP * scale + 0.5f);
// Use mGestureThreshold as a distance in pixels
여기에서 http://developer.android.com/guide/practices/screens_support.html#dips-pels
이 주제가 오래되었고 이미 답변을 받았지만이 코드도 제안하고 싶습니다.
int MY_DIP_VALUE = 5; //5dp
int pixel= (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
MY_DIP_VALUE, getResources().getDisplayMetrics());
허용되는 대답은 텍스트 크기를 설정하는 것이 아니라 제스처에 대한 것입니다. 가장 근접하다 (이 기입시) 답 선정되지만 문서의 사용을 권장 sp
보다는 dp
화면 밀도에 대한 스케일링 인 이외에 (로하기 때문에 dp
가치가있다), sp
또한 사용자가 원하는 폰트 크기에 따라 스케일링된다.
인 int
코드에서
int spSize = 17;
float scaledSizeInPixels = spSize * getResources().getDisplayMetrics().scaledDensity;
mTextPaint.setTextSize(scaledSizeInPixels);
또는
int spSize = 17;
float scaledSizeInPixels = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,
spSize, getResources().getDisplayMetrics());
mTextPaint.setTextSize(scaledSizeInPixels);
자원에서
또는 리소스에 sp
또는 dp
가치 가있는 경우 :
<resources>
<dimen name="fontSize">17sp</dimen>
</resources>
와
float scaledSizeInPixels = getResources().getDimensionPixelSize(R.dimen.fontSize);
mTextPaint.setTextSize(scaledSizeInPixels);
기타 링크
- DP, PX, SP, 특히 DP와 SP를 어떻게 변환합니까?
- Android : 다양한 화면 해상도에서 Canvas.drawText () 텍스트 크기
Paint.setTextSize
getDimensionPixelSize
그리고 디스플레이 메트릭을 고려하여 dp-s를 px-el로 변환하는 더 짧은 방법이 있습니다.
Paint 개체를 사용하여 캔버스에 텍스트를 그리는 경우 캔버스에서 크기 조정을 처리하도록 할 수 있습니다.
호출 할 때 Canvas.drawText()
텍스트 크기는 먼저 전달 된 Paint
객체에 의해 결정되며을 통해 설정할 수 있습니다 Paint.setTextSize()
. 를 Canvas
사용하여 찾을 수있는 캔버스 밀도 에 따라 텍스트 크기가 자동으로 조정됩니다 Canvas.getDensity()
.
Canvas에 그릴 페인트 개체의 텍스트 크기를 설정할 때 dp
또는 단위 값으로 작업 sp
하고 Canvas가 크기 조정을 처리하도록합니다.
참조 URL : https://stackoverflow.com/questions/3061930/how-to-set-unit-for-paint-settextsize
'development' 카테고리의 다른 글
winform DataGridview 헤더의 색상을 변경하는 방법은 무엇입니까? (0) | 2020.12.26 |
---|---|
Django가 HTTP 301을 반환합니까? (0) | 2020.12.26 |
프로그래밍 방식으로 옵션 메뉴를 여는 방법은 무엇입니까? (0) | 2020.12.26 |
확장 mysqli가 누락되어 phpmyadmin이 작동하지 않습니다. (0) | 2020.12.26 |
"완료 / 돌아 가기"버튼을 눌렀을 때 텍스트 상자 키보드를 숨기는 방법 Xcode 4.2 (0) | 2020.12.26 |