全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android之TextView自适应大小

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

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

实现依靠于第三方类库

第三方类来源:

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

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

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

android:singleLine="true"

<me.grantland.widget.AutofitTextView
   android:id="@+id/output_autofit"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:text="@string/example"
   android:textSize="50sp"
   android:gravity="center"
   android:singleLine="true"
   autofit:minTextSize="8sp"
   />

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"   xmlns:autofit="http://schemas.android.com/apk/res-auto"
 android:layout_width="match_parent"
 android:layout_height="match_parent">
 <LinearLayout
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:orientation="vertical"
  >
  <EditText
   android:id="@+id/input"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:singleLine="true"
   android:hint="@string/input_hint"
   android:text="@string/example"/>
  <TextView
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:text="@string/label_normal"
   />
  <TextView
   android:id="@+id/output"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:text="@string/example"
   android:textSize="50sp"
   android:gravity="center"
   />
  <TextView
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:text="@string/label_autofit"
   />
  <me.grantland.widget.AutofitTextView
   android:id="@+id/output_autofit"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:text="@string/example"
   android:textSize="50sp"
   android:gravity="center"
   android:singleLine="true"
   autofit:minTextSize="8sp"
   />
 </LinearLayout>
</ScrollView>

activity_main.xml

string.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
 <string name="app_name">Texttest</string>
 <string name="action_settings">Settings</string>
 <string name="hello_world">Hello world!</string>
 <string name="input_hint">text</string>
 <string name="label_normal">Normal:</string>
 <string name="label_autofit">Autofit:</string>
 <string name="example">This is an example</string>
</resources>

activity

package com.example.texttest;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Menu;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
 private TextView mOutput;
 private TextView mAutofitOutput;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  mOutput = (TextView)findViewById(R.id.output);
  mAutofitOutput = (TextView)findViewById(R.id.output_autofit);
  ((EditText)findViewById(R.id.input)).addTextChangedListener(new TextWatcher() {
   @Override
   public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {
    // do nothing
   }
   @Override
   public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
    mOutput.setText(charSequence);
    mAutofitOutput.setText(charSequence);
   }
   @Override
   public void afterTextChanged(Editable editable) {
    // do nothing
   }
  });
 }
 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.main, menu);
  return true;
 }
}

MainActivity.java

效果:

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# textview自适应大小  # textview  # 文字自适应  # 4种Android屏幕自适应解决方案  # Android编程实现WebView自适应全屏方法小结  # Android编程实现屏幕自适应方向尺寸与分辨率的方法  # Android中WebView图片实现自适应的方法  # Android提高之ListView实现自适应表格的方法  # Android中让图片自适应控件的大小的方法  # Android字体大小自适应不同分辨率的解决办法  # 第三方  # 设置为  # 自适应  # 很重要  # 只需要  # 过大  # 显示效果  # 就让我们  # 类库  # textSize  # version  # utf  # string  # encoding  # text  # gravity  # sp  # minTextSize  # autofit  # center 


相关文章: 如何快速生成可下载的建站源码工具?  建站之星伪静态规则如何设置?  大连网站设计制作招聘信息,大连投诉网站有哪些?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  网站按钮制作软件,如何实现网页中按钮的自动点击?  网站制作新手教程,新手建设一个网站需要注意些什么?  网站制作难吗安全吗,做一个网站需要多久时间?  如何在七牛云存储上搭建网站并设置自定义域名?  如何通过虚拟主机快速完成网站搭建?  如何在Windows服务器上快速搭建网站?  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  建站VPS选购需注意哪些关键参数?  香港服务器如何优化才能显著提升网站加载速度?  广州商城建站系统开发成本与周期如何控制?  如何零成本快速生成个人自助网站?  建站VPS配置与SEO优化指南:关键词排名提升策略  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  魔方云NAT建站如何实现端口转发?  宝塔建站无法访问?如何排查配置与端口问题?  红河网站制作公司,红河事业单位身份证如何上传?  网站制作免费,什么网站能看正片电影?  北京建设网站制作公司,北京古代建筑博物馆预约官网?  浅谈Javascript中的Label语句  平台云上自主建站:模板化设计与智能工具打造高效网站  ,怎么用自己头像做动态表情包?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  建站主机空间推荐 高性价比配置与快速部署方案解析  如何通过NAT技术实现内网高效建站?  韩国服务器如何优化跨境访问实现高效连接?  如何批量查询域名的建站时间记录?  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  浅析上传头像示例及其注意事项  如何快速搭建高效WAP手机网站?  如何彻底卸载建站之星软件?  郑州企业网站制作公司,郑州招聘网站有哪些?  建站之星安全性能如何?防护体系能否抵御黑客入侵?  如何通过西部建站助手安装IIS服务器?  股票网站制作软件,网上股票怎么开户?  建站之星客服服务时间及联系方式如何?  如何在新浪SAE免费搭建个人博客?  如何在建站宝盒中设置产品搜索功能?  如何通过山东自助建站平台快速注册域名?  广东专业制作网站有哪些,广东省能源集团有限公司官网?  上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?  网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?  建站VPS能否同时实现高效与安全翻墙?  如何解决VPS建站LNMP环境配置常见问题?  东莞市网站制作公司有哪些,东莞找工作用什么网站好? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。