setAutoSizeTextTypeUniformWithConfiguration在8.0之前的Android上不起作用

时间:2019-12-26 11:00:08

标签: android android-layout

嗨,我有一个动态创建的TextView,我想以编程方式自动调整文本大小。我在Internet上搜索,发现了这种方法:TextViewCompat.setAutoSizeTextTypeUniformWithConfiguration(int autoSizeMinTextSize, int autoSizeMaxTextSize, int autoSizeStepGranularity, int unit);

但是,这不起作用。我是否缺少一些代码部分?如果可以的话,我的最小SDK为21。

这是一个Java代码:

public class MainActivity extends AppCompatActivity {

    public TextView question;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        RelativeLayout rl = (RelativeLayout)findViewById(R.id.relativeLay);

        question = new TextView(this);
        question.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT));
        question.setGravity(Gravity.CENTER);
        TextViewCompat.setAutoSizeTextTypeUniformWithConfiguration(question, 12, 112, 1, AUTO_SIZE_TEXT_TYPE_UNIFORM);
        question.setText("This is a test!");
        ((RelativeLayout) rl).addView(question);


    }
}

这是我的xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical"
    android:gravity="center">

    <RelativeLayout
        android:id="@+id/relativeLay"
        android:layout_width="match_parent"
        android:layout_height="300dp"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:background="@color/colorPrimary"
        android:orientation="vertical">

    </RelativeLayout>
</LinearLayout>

等待一些答案,谢谢。

编辑

它在android 8.0及更高版本上正常工作,但不适用于android 8.0之前的android版本。我应该在build.gradle还是AndroidManifest中添加一些内容?

0 个答案:

没有答案