내 특별한 이유 때문에 String
(텍스트보기에 배치) 크기 (픽셀 단위)가 장치의 너비 크기 (픽셀 단위)를 초과하지 않는지 확인해야합니다. 내가 사용하는 화면의 폭으로 활용하려면 다음문자열의 크기와 화면의 너비를 비교하는 방법은 무엇입니까?
final float scale = context.getResources().getDisplayMetrics().density;
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
try{
Point size = new Point();
display.getSize(size);
screenWidth = size.x;
}catch(NoSuchMethodError e){
screenWidth = display.getWidth();
}
screenWidth = screenWidth - ((int) (10 * scale + 0.5f)); //takes into account a 10dp margin
을 그리고 내가 사용하는 문자열의 길이를 얻을 :
paint.measureText(string);
문자열이
String
개체입니다
페인트가 Paint
개체입니다. 제가 직면하고있는 문제는 메서드는 화면 길이가 훨씬 더 길어도 String
이 작다고 말합니다. 나는 뭔가를 간과 했는가? 이 작업을 수행하는 더 좋은 방법이 있습니까? 어떤 도움, 제안 또는 충고든지 크게 평가 될 것입니다! 감사!
문자의 너비를 계산하려면 문자의 크기를 알아야합니다. 그리고 그것은 모노가 아닌 글꼴에 따라 다릅니다. –
그래서 공식은 간단히 (문자의 크기) * (문자열의 크기)가됩니까? (문자의 크기)는 아마도 가장 큰 문자 크기 (M)와 같아야하고 (문자열의 크기)는'paint.measureText' 메쏘드와 같을까요? 그리고 내 다른 질문은'paint.measureText()'가 문자 크기를 참조하지 않고 크기를 계산하는 방법 일 것입니다. – chRyNaN
아니요, _each_ 문자를 열거하고 크기를 계산해야합니다. 그런 다음 모두 함께 추가하십시오. –