Java 根据字数更改文本大小-android
我使用了一个库来帮助自动将文本放入一个按钮,然而,即使它适用于三部android手机,对于一部更大的android手机,一些文本的大小会随机缩小,即使它们不需要这样做。屏幕截图显示的示例: 所以我有了一个想法。我将xml设置为普通按钮,如下所示:Java 根据字数更改文本大小-android,java,android,android-studio,Java,Android,Android Studio,我使用了一个库来帮助自动将文本放入一个按钮,然而,即使它适用于三部android手机,对于一部更大的android手机,一些文本的大小会随机缩小,即使它们不需要这样做。屏幕截图显示的示例: 所以我有了一个想法。我将xml设置为普通按钮,如下所示: <Button android:id="@+id/btnans4" android:layout_width="match_parent" andro
<Button
android:id="@+id/btnans4"
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_marginBottom="10dp"
android:layout_marginTop="5dp"
android:background="@drawable/blue"
android:padding="5dp"
android:text="Answer - 4"
android:textColor="@color/white"
android:textSize="15sp"/>
首先将这些行放在
res/values
文件夹中的dimens.xml
中,以定义两个所需的文本大小:<dimen name="btn_text_size_small">12sp</dimen>
<dimen name="btn_text_size_normal">15sp</dimen>
12sp
15便士
接下来使用此代码应用文本大小: Button[] buttons = {btnans1, btnans2, btnans3, btnans4};
for (int i = 0; i < buttons.length; i++) {
String text = buttons[i].getText().toString().trim();
String[] words = text.split(" ");
Float size;
if (words.length > 5) {
size = getResources().getDimension(R.dimen.btn_text_size_small);
} else {
size = getResources().getDimension(R.dimen.btn_text_size_normal);
}
buttons[i].setTextSize(TypedValue.COMPLEX_UNIT_PX, size);
}
Button[]按钮={btnans1,btnans2,btnans3,btnans4};
对于(int i=0;i5){
size=getResources().getDimension(R.dimen.btn\u text\u size\u small);
}否则{
size=getResources().getDimension(R.dimen.btn\u text\u size\u normal);
}
按钮[i].SettexSize(TypedValue.COMPLEX\u UNIT\u PX,size);
}
我希望我没有打字错误。只是测试一下而已now@mmkp我希望您测试我的上一个代码,因为我确实输入了您的编辑,这是我现在粘贴的代码,我将在2分钟内更新您。按空格数计算字数。只需将文本设置为较小即可,以确保不会更改长答案的文本大小
Button[] buttons = {btnans1, btnans2, btnans3, btnans4};
for (int i = 0; i < buttons.length; i++) {
String text = buttons[i].getText().toString().trim();
String[] words = text.split(" ");
Float size;
if (words.length > 5) {
size = getResources().getDimension(R.dimen.btn_text_size_small);
} else {
size = getResources().getDimension(R.dimen.btn_text_size_normal);
}
buttons[i].setTextSize(TypedValue.COMPLEX_UNIT_PX, size);
}