博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android项目实战(五):TextView自适应大小
阅读量:6970 次
发布时间:2019-06-27

本文共 2499 字,大约阅读时间需要 8 分钟。

原文:

对于设置TextView的字体默认大小对于UI界面的好看程度是很重要的,小屏幕设置的文字过大或者大屏幕设置的文字过小都造成UI的不美观

 

现在就让我们学习自适应大小的TextView控件,即当文字长度变化时,文字的大小会相应的变化,保证显示在一行当中

 

实现依靠于第三方类库

第三方类来源:

https://github.com/grantland/android-autofittextview

 

和正常的使用TextView一样,只需要将要自适应的TextView标签设置为<me.grantland.widget.AutofitTextView/>

注意:一定要设置为单行,否定无法显示效果

android:singleLine="true"

 

1 

 

布局文件:

1 
2
6
11
18
23
31
36
46
47
activity_main.xml

string.xml

1 
2
3 4
Texttest
5
Settings
6
Hello world!
7 8
text
9
Normal:
10
Autofit:
11 12
This is an example
13 14
View Code

activity

1 package com.example.texttest; 2  3 import android.app.Activity; 4 import android.os.Bundle; 5 import android.text.Editable; 6 import android.text.TextWatcher; 7 import android.view.Menu; 8 import android.widget.EditText; 9 import android.widget.TextView;10 11 public class MainActivity extends Activity {12 13     private TextView mOutput;14     private TextView mAutofitOutput;15     @Override16     protected void onCreate(Bundle savedInstanceState) {17         super.onCreate(savedInstanceState);18         setContentView(R.layout.activity_main);19         mOutput = (TextView)findViewById(R.id.output);20         mAutofitOutput = (TextView)findViewById(R.id.output_autofit);21 22         ((EditText)findViewById(R.id.input)).addTextChangedListener(new TextWatcher() {23             @Override24             public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {25                 // do nothing26             }27 28             @Override29             public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {30                 mOutput.setText(charSequence);31                 mAutofitOutput.setText(charSequence);32             }33 34             @Override35             public void afterTextChanged(Editable editable) {36                 // do nothing37             }38         });39     }40     41 42 43     @Override44     public boolean onCreateOptionsMenu(Menu menu) {45         // Inflate the menu; this adds items to the action bar if it is present.46         getMenuInflater().inflate(R.menu.main, menu);47         return true;48     }49     50 }
MainActivity.java

效果:

 

转载地址:http://wsasl.baihongyu.com/

你可能感兴趣的文章
Vue2.0构建——基础总结
查看>>
Flutter常见问题答疑
查看>>
原型和原型链
查看>>
U-boot登录加入密码验证
查看>>
小程序开发:上传图片到腾讯云
查看>>
翻译 | 使用A-Frame打造WebVR版《我的世界》
查看>>
React知识地图--ES6
查看>>
hexo-admin后台管理博客
查看>>
Django 用户认证
查看>>
SVG之Paths
查看>>
【面向对象的PHP】之模式:原型
查看>>
FAST_START_MTTR_TARGE 参数学习
查看>>
【Servlet】01-Web应用体系结构
查看>>
替换Rest?不,软件工程应该构建成熟的REST生态
查看>>
重构到更深层的模型
查看>>
Cordova是否适用于你的目标行业?
查看>>
微软正在考虑将Windows默认浏览器改为Chromium
查看>>
同事反馈环:如何实现持续改进的文化
查看>>
网易云基于Prometheus的微服务监控实践
查看>>
ubuntu 安装nodejs
查看>>