自动切换文字大小的TextView

  • 需求
    用户信息显示全部;但是针对不同型号的手机以及个人信息长度的不同要想把信息全部展示就需要改变文字的大小。这一点官方已经给出了解决方案AppCompatTextView;
    AppCompatTextView 继承自TextView 并且实现了AutoSizeableTextView接口;
  • 实现
    1、xml文件实现
 <android.support.v7.widget.AppCompatTextView
        android:textSize="16sp"
        android:autoSizeMaxTextSize="16sp"//字体最大字号
        android:autoSizeMinTextSize="8sp"//最小字号
        android:autoSizeStepGranularity="2sp"//每变化的梯值
        android:autoSizeTextType="uniform"//设置为可以改变大小(none为不支持改变)
        android:id="@+id/autoSize"
        android:layout_width="300dp"
        android:layout_height="50dp"
        android:maxLines="1"
        android:text="朱鹤寺有个姐姐的多看看看问题永爱不大会看毛利率,,,,,,,,这是一个可以控制大小的text"
        />

刚开始在xml中配置后一直没有出来效果,后来才发现Android Studio有提示
在这里插入图片描述
原来这个是26之后才提出的,如果想用xml文件的方式那么必须保证设备是Android 8.0以上设备;
那么如何向下兼容呢?那就看方式2
2、动态代码设置
先上代码

//找控件,必须是AppCompatTextView
AppCompatTextView appCompatTextView = findViewById(R.id.autoSize);
//设置为可支持大小缩放 相当于xml中的  android:autoSizeTextType="uniform"
TextViewCompat.setAutoSizeTextTypeWithDefaults(
                appCompatTextView, TextViewCompat.AUTO_SIZE_TEXT_TYPE_UNIFORM);
// 最小字号,最大字号(最小字号一定小于等于可全部展示的字号不然没有效果),梯值,单位
TextViewCompat.setAutoSizeTextTypeUniformWithConfiguration(
                appCompatTextView, 8, 25, 1, TypedValue.COMPLEX_UNIT_SP);

那么动态设置能向下兼容吗,我是运行在Android 6.1的设备上的没有问题,说明动态配置是可以向下兼容的;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值