Android(安卓)UI(TextView)详解
16lz
2021-01-24
目录:
1.用途
2.textview属性设置方式
3.textview常用效果
4.textview属性大全
1.用途:主要用于Android中文本的显示(像是一句废话)
2.textview属性设置方式
2.1 xml设置:xml设置就是直接在布局文件中设置相关属性
2.2 Java代码设置:java代码设置需要在xml布局文件中指定id属性,Java代码获取绑定控件设置其属性
2.2.1 activity_main.xml
2.2.2 MainActivity.java
3.textview常用效果
3.1 TextView行间距
3.2 TextView下划线
3.2.1 在资源文件里面设置
3.2.2 在Java文件里面设置
1)HTML方式
3.3 TextView文字居中
ps:注意android:gravity="center"和android:layout_gravity="center"的区别,前者表示文字在TextView内居中,后者表示TextView相对于整个布局居中
3.4 TextView换行
文本设置换行前提需要保证android:singleLine="false"(不为单行显示),需要他自动换行的话可以把宽度设置小一些可以得到自动换行的效果,
在动态设置文本的时候在setText()中为文本加上“\n”,可以达到换行的效果
3.5 TextView的跑马灯效果
3.5.1 ellipsize属性与效果:
start:省略号在开头
end:省略号在结尾
middle:省略号在中间
marquee:跑马灯滚动(默认textview获取焦点时,才会滚动,如果要设置一直滚动则需要自定义TextView)
3.5.2 注意:text字符的长度一般要大于设置的宽度,同时wrap_content/match_parent都是可以设置的,
只要保证文字字符串足够长;同时必须设置singleLine为单行显示,marqueeRepeatLimit设置滚动次数
3.6 TextView文字阴影效果
3.6.1 相关属性:
1. android:shadowColor:阴影的颜色
2. android:shadowDx:水平方向上的偏移量(可为负)
3. android:shadowDy:垂直方向上的偏移量(可为负)
4. Android:shadowRadius:是阴影的的半径大少(半径越大,阴影越模糊)
ps:TextView字体也可以这么美!更多样式更多花样可参考:http://blog.csdn.net/hewence1/article/details/39993415
3.7 TextView展现HTML
3.7.1 纯文本的HTML
1)xml实现代码
2)java实现代码
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.andy.androiduitextview.MainActivity" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/name"
android:layout_below=""
android:layout_alignBaseline=""
android:layout_alignLeft=""
android:layout_alignTop=""
android:layout_alignRight=""
android:layout_alignBottom=""
android:layout_alignParentLeft=""
android:layout_alignParentRight=""
android:layout_alignParentTop=""
android:layout_alignParentBottom=""
android:layout_centerInParent=""
android:layout_centerHorizontal=""
android:layout_centerVertical=""
android:layout_alignWithParentIfMissing=""
android:layout_toStartOf=""
android:layout_toEndOf=""
android:layout_toLeftOf="@id/name"
android:layout_toRightOf=""
android:layout_alignStart=""
android:layout_alignEnd=""
android:layout_alignParentStart=""
android:layout_alignParentEnd=""
android:layout_margin=""
android:layout_marginLeft=""
android:layout_marginRight=""
android:layout_marginTop=""
android:layout_marginBottom=""
android:layout_marginStart=""
android:layout_marginEnd=""
android:singleLine=""
android:selectAllOnFocus=""
android:includeFontPadding=""
android:maxLength=""
android:shadowColor=""
android:shadowDx=""
android:shadowDy=""
android:shadowRadius=""
android:autoLink=""
android:linksClickable=""
android:freezesText=""
android:ellipsize=""
android:drawableTop=""
android:drawableBottom=""
android:drawableLeft=""
android:drawableRight=""
android:drawableStart=""
android:drawableEnd=""
android:drawablePadding=""
android:lineSpacingExtra=""
android:lineSpacingMultiplier=""
android:marqueeRepeatLimit=""
android:textSelectHandleLeft=""
android:textSelectHandleRight=""
android:textSelectHandle=""
android:textEditPasteWindowLayout=""
android:textEditNoPasteWindowLayout=""
android:textEditSidePasteWindowLayout=""
android:textEditSideNoPasteWindowLayout=""
android:textEditSuggestionItemLayout=""
android:textCursorDrawable=""
android:textIsSelectable=""
android:textAllCaps=""
android:id=""
android:tag=""
android:scrollX=""
android:scrollY=""
android:background=""
android:padding=""
android:paddingLeft=""
android:paddingRight=""
android:paddingTop=""
android:paddingBottom=""
android:paddingStart=""
android:paddingEnd=""
android:focusable=""
android:focusableInTouchMode=""
android:visibility=""
android:fitsSystemWindows=""
android:fadingEdge=""
android:requiresFadingEdge=""
android:fadingEdgeLength=""
android:nextFocusLeft=""
android:nextFocusRight=""
android:nextFocusUp=""
android:nextFocusDown=""
android:nextFocusForward=""
android:clickable=""
android:longClickable=""
android:saveEnabled=""
android:filterTouchesWhenObscured=""
android:drawingCacheQuality=""
android:keepScreenOn=""
android:duplicateParentState=""
android:soundEffectsEnabled=""
android:hapticFeedbackEnabled=""
android:contentDescription=""
android:onClick=""
android:overScrollMode=""
android:alpha=""
android:translationX=""
android:translationY=""
android:rotation=""
android:rotationX=""
android:rotationY=""
android:scrollX=""
android:scrollY=""
android:verticalScrollbarPosition=""
android:layerType=""
android:layoutDirection=""
android:textDirection=""
android:textAlignment=""
android:importantForAccessibility=""
android:accessibilityLiveRegion=""
android:labelFor=""
android:bufferType="NORMAL"
android:text="文本"
android:hint="提示信息"
android:textColor="#ccc"
android:textColorHighlight=""
android:textColorHint=""
android:textAppearance="?android:attr/textAppearanceButton"
android:textSize=""
android:textScaleX=""
android:typeface=""
android:textStyle=""
android:fontFamily=""
android:textColorLink=""
android:cursorVisible=""
android:maxLines=""
android:height=""
android:minLines=""
android:minHeight=""
android:maxEms=""
android:maxWidth=""
android:ems=""
android:width=""
android:minEms=""
android:minWidth=""
android:gravity=""
android:scrollHorizontally=""
/>
1.用途
2.textview属性设置方式
3.textview常用效果
4.textview属性大全
1.用途:主要用于Android中文本的显示(像是一句废话)
2.textview属性设置方式
2.1 xml设置:xml设置就是直接在布局文件中设置相关属性
2.2 Java代码设置:java代码设置需要在xml布局文件中指定id属性,Java代码获取绑定控件设置其属性
2.2.1 activity_main.xml
2.2.2 MainActivity.java
package com.andy.androiduitextview; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.TextView; public class MainActivity extends Activity { private TextView text; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); text =(TextView)findViewById(R.id.text); //设置TextView文本 text.setText("java代码设置属性"); } }
3.textview常用效果
3.1 TextView行间距
android:lineSpacingExtra="9dp" --设置行间距 android:lineSpacingMultiplier="2" --设置行间距倍数
3.2 TextView下划线
3.2.1 在资源文件里面设置
资源文件下划线
3.2.2 在Java文件里面设置
1)HTML方式
TextView textView = (TextView)findViewById(R.id.text4);String htmlString = "html下划线";text4.setText(Html.fromHtml(htmlString));
2)绘图方式TextView text5 = (TextView)findViewById(R.id.text5);//设置下划线text5.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);//设置抗锯齿text5.getPaint().setAntiAlias(true);
3.3 TextView文字居中
ps:注意android:gravity="center"和android:layout_gravity="center"的区别,前者表示文字在TextView内居中,后者表示TextView相对于整个布局居中
3.4 TextView换行
文本设置换行前提需要保证android:singleLine="false"(不为单行显示),需要他自动换行的话可以把宽度设置小一些可以得到自动换行的效果,
在动态设置文本的时候在setText()中为文本加上“\n”,可以达到换行的效果
3.5 TextView的跑马灯效果
3.5.1 ellipsize属性与效果:
start:省略号在开头
end:省略号在结尾
middle:省略号在中间
marquee:跑马灯滚动(默认textview获取焦点时,才会滚动,如果要设置一直滚动则需要自定义TextView)
3.5.2 注意:text字符的长度一般要大于设置的宽度,同时wrap_content/match_parent都是可以设置的,
只要保证文字字符串足够长;同时必须设置singleLine为单行显示,marqueeRepeatLimit设置滚动次数
3.6 TextView文字阴影效果
3.6.1 相关属性:
1. android:shadowColor:阴影的颜色
2. android:shadowDx:水平方向上的偏移量(可为负)
3. android:shadowDy:垂直方向上的偏移量(可为负)
4. Android:shadowRadius:是阴影的的半径大少(半径越大,阴影越模糊)
ps:TextView字体也可以这么美!更多样式更多花样可参考:http://blog.csdn.net/hewence1/article/details/39993415
3.7 TextView展现HTML
3.7.1 纯文本的HTML
1)xml实现代码
2)java实现代码
package com.andy.androiduitextview;import android.app.Activity;import android.os.Bundle;import android.text.Html;import android.text.method.LinkMovementMethod;import android.view.Menu;import android.view.MenuItem;import android.widget.TextView;public class MainActivity extends Activity {private TextView text2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//绑定布局text2 =(TextView)findViewById(R.id.text2);//定义html文档字符串String html ="纯文本HTML
";html+="追加纯文本HTML
";html+="文字链接
";//Html.fromHtml(html)转换string为CharSequence类型CharSequence charSequence =Html.fromHtml(html);//为text2设置texttext2.setText(charSequence);//设置点击时候产生超链接text2.setMovementMethod(LinkMovementMethod.getInstance());}}
3.7.2 带图片的HTML(网络图片 or 本地图片 or 项目图片)
1)加载项目图片
布局文件代码:
java逻辑代码: TextView text8=(TextView)findViewById(R.id.text8);//定义Stringfinal String UrlText ="項目資源圖片:";//设置加载图片final Html.ImageGetter imageGetter =new Html.ImageGetter() {@Overridepublic Drawable getDrawable(String source) {Drawable drawable;//获取图片路径转换为int类型int id =Integer.parseInt(source);//静态方法获取图片繪製drawabledrawable = getResources().getDrawable(id);//设置边框,和髖高drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());return drawable;}}; //设置Html到TextViewtext8.setText(Html.fromHtml(UrlText,imageGetter,null));
2)加载本地图片 布局文件代码:
Java代码: TextView text9 = (TextView)findViewById(R.id.text9);final String UrlText1 ="本地資源圖片:";//设置加载图片final Html.ImageGetter imageGetter1 =new Html.ImageGetter() {@Overridepublic Drawable getDrawable(String source) {Drawable drawable = null;Log.i("資源地址", source);//静态方法获取图片繪製drawabletry {drawable = Drawable.createFromPath(source);//设置边框,和髖高drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());} catch (Exception e) {Log.i("信息", "資源不存在");}return drawable;}}; //设置Html到TextViewtext9.setText(Html.fromHtml(UrlText1,imageGetter1,null));
注意:在访问本地图片的时候,需要注册读SD卡的权限
注:访问网络图片的内容暂不学习,因为他涉及到异步请求和网络通信的知识
3.8 TextView中链接手机号码/网页/邮件地址/地图
3.8.1 通过设置TextView的autoLink属性
3.8.2 通过strings.xml添加
strings.xml直接添加链接:http://www.baidu.com
3.8.2 HTML构建文本添加链接
1)xml文件代码
2)java代码
/* * html設置鏈接*/TextView text12 = (TextView)findViewById(R.id.text12);String htmString="html添加鏈接:http://www.baidu.com";text12.setText(Html.fromHtml(htmString));text12.setMovementMethod(LinkMovementMethod.getInstance());
3.8.3 通过SpanableString指定字符串为链接文本
1)xml文件代码
2)Java代码
/** 用SpanableString設置鏈接 */TextView text13 = (TextView)findViewById(R.id.text13);SpannedString spanString= new SpannedString("SpanableString設置鏈接:http://www.baidu.com");
ps:TextView并不支持所有的HTML标签,支持的标签可查看源码android.text.Html,同时可实现自定义标签,再此不做讲解。
以上相关运行截图:
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.andy.androiduitextview.MainActivity" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/name"
android:layout_below=""
android:layout_alignBaseline=""
android:layout_alignLeft=""
android:layout_alignTop=""
android:layout_alignRight=""
android:layout_alignBottom=""
android:layout_alignParentLeft=""
android:layout_alignParentRight=""
android:layout_alignParentTop=""
android:layout_alignParentBottom=""
android:layout_centerInParent=""
android:layout_centerHorizontal=""
android:layout_centerVertical=""
android:layout_alignWithParentIfMissing=""
android:layout_toStartOf=""
android:layout_toEndOf=""
android:layout_toLeftOf="@id/name"
android:layout_toRightOf=""
android:layout_alignStart=""
android:layout_alignEnd=""
android:layout_alignParentStart=""
android:layout_alignParentEnd=""
android:layout_margin=""
android:layout_marginLeft=""
android:layout_marginRight=""
android:layout_marginTop=""
android:layout_marginBottom=""
android:layout_marginStart=""
android:layout_marginEnd=""
android:singleLine=""
android:selectAllOnFocus=""
android:includeFontPadding=""
android:maxLength=""
android:shadowColor=""
android:shadowDx=""
android:shadowDy=""
android:shadowRadius=""
android:autoLink=""
android:linksClickable=""
android:freezesText=""
android:ellipsize=""
android:drawableTop=""
android:drawableBottom=""
android:drawableLeft=""
android:drawableRight=""
android:drawableStart=""
android:drawableEnd=""
android:drawablePadding=""
android:lineSpacingExtra=""
android:lineSpacingMultiplier=""
android:marqueeRepeatLimit=""
android:textSelectHandleLeft=""
android:textSelectHandleRight=""
android:textSelectHandle=""
android:textEditPasteWindowLayout=""
android:textEditNoPasteWindowLayout=""
android:textEditSidePasteWindowLayout=""
android:textEditSideNoPasteWindowLayout=""
android:textEditSuggestionItemLayout=""
android:textCursorDrawable=""
android:textIsSelectable=""
android:textAllCaps=""
android:id=""
android:tag=""
android:scrollX=""
android:scrollY=""
android:background=""
android:padding=""
android:paddingLeft=""
android:paddingRight=""
android:paddingTop=""
android:paddingBottom=""
android:paddingStart=""
android:paddingEnd=""
android:focusable=""
android:focusableInTouchMode=""
android:visibility=""
android:fitsSystemWindows=""
android:fadingEdge=""
android:requiresFadingEdge=""
android:fadingEdgeLength=""
android:nextFocusLeft=""
android:nextFocusRight=""
android:nextFocusUp=""
android:nextFocusDown=""
android:nextFocusForward=""
android:clickable=""
android:longClickable=""
android:saveEnabled=""
android:filterTouchesWhenObscured=""
android:drawingCacheQuality=""
android:keepScreenOn=""
android:duplicateParentState=""
android:soundEffectsEnabled=""
android:hapticFeedbackEnabled=""
android:contentDescription=""
android:onClick=""
android:overScrollMode=""
android:alpha=""
android:translationX=""
android:translationY=""
android:rotation=""
android:rotationX=""
android:rotationY=""
android:scrollX=""
android:scrollY=""
android:verticalScrollbarPosition=""
android:layerType=""
android:layoutDirection=""
android:textDirection=""
android:textAlignment=""
android:importantForAccessibility=""
android:accessibilityLiveRegion=""
android:labelFor=""
android:bufferType="NORMAL"
android:text="文本"
android:hint="提示信息"
android:textColor="#ccc"
android:textColorHighlight=""
android:textColorHint=""
android:textAppearance="?android:attr/textAppearanceButton"
android:textSize=""
android:textScaleX=""
android:typeface=""
android:textStyle=""
android:fontFamily=""
android:textColorLink=""
android:cursorVisible=""
android:maxLines=""
android:height=""
android:minLines=""
android:minHeight=""
android:maxEms=""
android:maxWidth=""
android:ems=""
android:width=""
android:minEms=""
android:minWidth=""
android:gravity=""
android:scrollHorizontally=""
/>
更多相关文章
- Android(安卓)之 下拉框(Spinner)的使用
- 初始化有EditText或AutoCompleteEditText的界面时系统自动打开软
- android View 概述
- Android(安卓)UI布局优化的要点
- Android(安卓)实用工具Hierarchy Viewer实战
- Android(安卓)ListView几个比较特别的属性
- Android(安卓)控件框架
- Android基础_页面布局_TableLayout(表格布局)
- Android界面加载完成后自动弹出软键盘的解决方案