将相本无种,男儿当自强。这篇文章主要讲述Android项目实战:TextView自适应大小相关的知识,希望能为你提供帮助。
原文:Android项目实战(五):TextView自适应大小对于设置TextView的字体默认大小对于UI界面的好看程度是很重要的,小屏幕设置的文字过大或者大屏幕设置的文字过小都造成UI的不美观
现在就让我们学习自适应大小的TextView控件,即当文字长度变化时,文字的大小会相应的变化,保证显示在一行当中
实现依靠于第三方类库
第三方类来源:
https://github.com/grantland/android-autofittextview
和正常的使用TextView一样,只需要将要自适应的TextView标签设置为<
me.grantland.widget.AutofitTextView/>
注意:一定要设置为单行,否定无法显示效果
android:singleLine="true"
1 < me.grantland.widget.AutofitTextView 2android:id="@+id/output_autofit" 3android:layout_width="match_parent" 4android:layout_height="wrap_content" 5android:text="@string/example" 6android:textSize="50sp" 7android:gravity="center" 8android:singleLine="true" 9autofit:minTextSize="8sp" 10/>
布局文件:
文章图片
文章图片
1 < ?xml version="1.0" encoding="utf-8"?> 2 < ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 3xmlns:autofit="http://schemas.android.com/apk/res-auto" 4android:layout_width="match_parent" 5android:layout_height="match_parent"> 6< LinearLayout 7android:layout_width="match_parent" 8android:layout_height="wrap_content" 9android:orientation="vertical" 10> 11< EditText 12android:id="@+id/input" 13android:layout_width="match_parent" 14android:layout_height="wrap_content" 15android:singleLine="true" 16android:hint="@string/input_hint" 17android:text="@string/example"/> 18< TextView 19android:layout_width="match_parent" 20android:layout_height="wrap_content" 21android:text="@string/label_normal" 22/> 23< TextView 24android:id="@+id/output" 25android:layout_width="match_parent" 26android:layout_height="wrap_content" 27android:text="@string/example" 28android:textSize="50sp" 29android:gravity="center" 30/> 31< TextView 32android:layout_width="match_parent" 33android:layout_height="wrap_content" 34android:text="@string/label_autofit" 35/> 36< me.grantland.widget.AutofitTextView 37android:id="@+id/output_autofit" 38android:layout_width="match_parent" 39android:layout_height="wrap_content" 40android:text="@string/example" 41android:textSize="50sp" 42android:gravity="center" 43android:singleLine="true" 44autofit:minTextSize="8sp" 45/> 46< /LinearLayout> 47 < /ScrollView>
activity_main.xmlstring.xml
文章图片
文章图片
1 < ?xml version="1.0" encoding="utf-8"?> 2 < resources> 3 4< string name="app_name"> Texttest< /string> 5< string name="action_settings"> Settings< /string> 6< string name="hello_world"> Hello world!< /string> 7 8< string name="input_hint"> text< /string> 9< string name="label_normal"> Normal:< /string> 10< string name="label_autofit"> Autofit:< /string> 11 12< string name="example"> This is an example< /string> 13 14 < /resources>
View Codeactivity
文章图片
文章图片
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 13private TextView mOutput; 14private TextView mAutofitOutput; 15@Override 16protected void onCreate(Bundle savedInstanceState) { 17super.onCreate(savedInstanceState); 18setContentView(R.layout.activity_main); 19mOutput = (TextView)findViewById(R.id.output); 20mAutofitOutput = (TextView)findViewById(R.id.output_autofit); 21 22((EditText)findViewById(R.id.input)).addTextChangedListener(new TextWatcher() { 23@Override 24public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) { 25// do nothing 26} 27 28@Override 29public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) { 30mOutput.setText(charSequence); 31mAutofitOutput.setText(charSequence); 32} 33 34@Override 35public void afterTextChanged(Editable editable) { 36// do nothing 37} 38}); 39} 40 41 42 43@Override 44public boolean onCreateOptionsMenu(Menu menu) { 45// Inflate the menu; this adds items to the action bar if it is present. 46getMenuInflater().inflate(R.menu.main, menu); 47return true; 48} 49 50 }
MainActivity.java效果:
文章图片
【Android项目实战(TextView自适应大小)】
推荐阅读
- Android项目实战( SpannableString与SpannableStringBuilder)
- Android项目实战(十三)(浅谈EventBus)
- (转)Maven创建webapp项目无法修改web版本的问题
- BZOJ_3894_文理分科&&BZOJ_2127_happiness_最小割
- C#+HtmlAgilityPack+Dappe
- 通过adb shell 启动APP方法
- Android Studio 常用快捷键(转自yangpuyuan的博客)
- ionic(创建 APP)
- Slim 文档-First Application 翻译