숫자 또는 문자를 기반으로 TextView의 너비를 설정하고 싶습니다. 따라서 항상 3 자 너비를 원할 경우이를 설정하면 textSize 설정에 따라 조정됩니다. 이것이 없으면 글꼴 크기에 따라 맞을 수도 있고 맞지 않을 수도있는 50dip 등으로 너비를 설정해야합니다.
minEms
아마도 더 나은 대답 일 것입니다.
minEms
아마도 더 나은 대답 일 것입니다.
답변:
내 질문에 답하는 중 ...
그리고 승자는 : minEms
속성 설정 ( android:minEms
) !!!
그래서 " ems "는 가장 넓은 문자의 크기, 일반적으로 "M"을 나타냅니다. 알겠습니까? 따라서 minEms를 정수 값 (예 : 3)으로 설정하면 EditText 또는 TextView에서 너비가 3 자 이상인지 확인해야합니다. maxEms도 설정할 수 있습니다.
이 스레드에 대한 Kyle의 답변은 틀렸지 만 답을 찾았습니다. Kyle에게 감사드립니다.
ems
, 대중적인 신념과는 달리 (또는 적어도 여기에서 ems에 대한 대부분의 스레드에서) 단일 'M'의 너비를 기반으로하지 않습니다.
원래는 타이포그래피에서와 같았지만 Android를 포함한 디지털 매체에서는 그 의미가 사용 된 서체의 크기 또는 다른 말로하면 높이 (악센트 / 분음 부호에 대한 패딩 제외)로 변경되었습니다.
즉 ems
, TextView에를 지정할 때 textSize
기본으로 사용하고 ems
지정된 값을 곱 합니다.
샘플로 16sp TextView ems
를 4로 설정하면 너비가 64sp가됩니다. includeFontPadding
ConstraintLayout 내에서 두 개의 TextView ( false 로 설정)를 나란히 사용하여 쉽게 테스트 할 수 있습니다 ( layout_constraintDimensionRatio
).
sp
.