嗨,我有一个动态创建的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中添加一些内容?