Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 根据字数更改文本大小-android_Java_Android_Android Studio - Fatal编程技术网

Java 根据字数更改文本大小-android

Java 根据字数更改文本大小-android,java,android,android-studio,Java,Android,Android Studio,我使用了一个库来帮助自动将文本放入一个按钮,然而,即使它适用于三部android手机,对于一部更大的android手机,一些文本的大小会随机缩小,即使它们不需要这样做。屏幕截图显示的示例: 所以我有了一个想法。我将xml设置为普通按钮,如下所示: <Button android:id="@+id/btnans4" android:layout_width="match_parent" andro

我使用了一个库来帮助自动将文本放入一个按钮,然而,即使它适用于三部android手机,对于一部更大的android手机,一些文本的大小会随机缩小,即使它们不需要这样做。屏幕截图显示的示例:

所以我有了一个想法。我将xml设置为普通按钮,如下所示:

<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);
    }