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

本文共 2495 字,大约阅读时间需要 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://vbqya.baihongyu.com/

你可能感兴趣的文章
[20170628]12C ORA-54032.txt
查看>>
除以2
查看>>
高可用集群原理解析
查看>>
Nginx配置URL转向tomcat
查看>>
极客Web前端开发资源大荟萃#001
查看>>
让div固定在某个位置
查看>>
Java开发环境Docker镜像
查看>>
从无到有,WebService Apache Axis2初步实践
查看>>
任务调度(一)——jdk自带的Timer
查看>>
UIKit框架(15)PCH头文件
查看>>
整理看到的好的文档
查看>>
Linux磁盘管理和文件系统管理
查看>>
linux运维人员的成功面试总结案例分享
查看>>
Windows DHCP Server基于MAC地址过滤客户端请求实现IP地址的分配
查看>>
命令查询每个文件文件数
查看>>
《跟阿铭学Linux》第8章 文档的压缩与打包:课后习题与答案
查看>>
RAC表决磁盘管理和维护
查看>>
Apache通过mod_php5支持PHP
查看>>
发布一个TCP 吞吐性能测试小工具
查看>>
java学习:jdbc连接示例
查看>>