UI控件之显示文本控件TextView(上)
来源:互联网 发布:国企程序员 编辑:程序博客网 时间:2024/05/29 19:19
(一)概述
TextView主要是在android中实现文字说明等功能。
(二)常用基本属性
No.1 TextView控件自带属性的使用
运行效果:
实现代码:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/myTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#CDFFFF" android:text="TextView基本属性的使用" android:paddingLeft="100dp" android:gravity="right" android:textColor="#AC0F0D" android:textStyle="italic" android:textSize="20sp"/></RelativeLayout>
代码说明:
android:paddingLeft=”100dp”文本内容的左内边距为100dp;
android:gravity=”right”将文本的对齐方式设置为右对齐;
android:textColor=”#AC0F0D”文本颜色设置为红色;
android:textStyle=”italic”文本显示方式设置为斜体;
android:textSize=”20sp”文本大小为20sp
No.2 TextView中HTML标签属性的使用
在TextView中预定了一些类似HTML的标签,通过标签可以使TextView控件显得不懂颜色、大小、字体的文字。
<font>:设置颜色和字体<big>:设置大小号<small>:设置小号<i>\<b>:斜体、粗体<a>:链接地址<img>:插入图片
使用这些标签可以用Html.fromHtml方法将这些标签的字符串转换成Charsequenece对象,然后在TextView中进行设置。
如果想在显示的文本中将URL地址、邮箱地址、电话产生超链接的效果可以使用android:autoLink来设置。
该属性如下:
运行效果如下:
实现代码如下:
xml中代码
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/TextView_1" android:background="#FFF" android:layout_width="match_parent" android:layout_height="wrap_content" /></LinearLayout>
效果实现代码
package com.example.android_textview;import java.io.FileDescriptor;import java.lang.reflect.Field;import javax.xml.transform.Source;import android.app.Activity;import android.graphics.Color;import android.graphics.drawable.Drawable;import android.os.Bundle;import android.text.Html;import android.text.Html.ImageGetter;import android.text.method.LinkMovementMethod;import android.view.View;import android.widget.TextView;/** * 实战案例一:如何显示文本(URL、不同大小、字体、颜色的文本) * @author Administrator * */public class TextViewTest_1 extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.text_view_test_1); TextView TextView_1 = (TextView) findViewById(R.id.TextView_1); TextView_1.setTextColor(Color.GREEN);//设置TextView的文本颜色; TextView_1.setBackgroundColor(Color.BLACK);//设置TextView的文本颜色; TextView_1.setTextSize(20);//设置TextView的文本大小; /** * * 在TextView中预定了一些类似HTML的标签,通过标签可以使TextView控件显得不懂颜色、大小、字体的文字。 * <font>:设置颜色和字体 * <big>:设置大小号 * <small>:设置小号 * <i>\<b>:斜体、粗体 * <a>:链接地址 * <img>:插入图片 */ String html = "图像1<img src='image1'/>图像2<img src='image2'/>图像3<img src='image3'/><p>"; html += "图像4<a href='http://www.baidu.com'><img src='image4'></a>图像5<img src='image5'/>"; /** * CharSequence 是 char 值的一个可读序列。 * CharSequence对html标签进行序列化 * */ CharSequence charSequence = Html.fromHtml(html, new ImageGetter() { @Override public Drawable getDrawable(String source) { // TODO Auto-generated method stub //获取系统资源的信息,比如图片信息 Drawable drawable = getResources().getDrawable(getResourceId(source)); //第三个图片文件按照50%的比例进行压缩 //getIntrinsicWidth()获取固有宽度,getIntrinsicHeight()获取固有高度; if (source.equals("image3")) { drawable.setBounds(0 , 0 ,drawable.getIntrinsicWidth()/2 , drawable.getIntrinsicHeight()/2); }else{ drawable.setBounds(0 , 0 ,drawable.getIntrinsicWidth() , drawable.getIntrinsicHeight()); } return drawable; } }, null); TextView_1.setText(charSequence); TextView_1.setMovementMethod(LinkMovementMethod.getInstance()); } protected int getResourceId(String name) { // TODO Auto-generated method stub try { //根据资源的ID的变量名获得Field的对象,使用反射机制来实现 Field field = R.drawable.class.getField(name); //取得并返回资源的ID的字段(静态变量)的值,使用反射机制 return Integer.parseInt(field.get(null).toString()); } catch (Exception e) { } return 0; }}
代码解析:
定义了String型的html将“图像2<img src='image2'/>
“中的文本与图片集合在一起,使用<a href='http://www.baidu.com'>
定义了一个点击图片进入百度的连接;用Html.fromHtml方法将这些标签的字符串转换成Charsequenece对象(即进行序列化),然后TextView_1调用它的setText()进行了设置,调用 setMovementMethod()来允许被TextView使用handle的key,即该TextView可以使用handle的机制来更新UI;主要是实现了点击“图片3”的View后会发生跳转的功能,剩下的是使getResourceId()方法来获取资源Id,将其传给getDrawable()方法进行图片绘制,其中,图片2是按照宽高各一半来进行绘制的;
No.3 TextView中autoLink属性识别链接类型
当文字中出现了URL,E-Mail,电话号码,地图的时候,我们可以通过设置autoLink属性;当我们点击文字中对应部分的链接,即可跳转至某默认app,比如一串号码,点击后跳转至拨号界面;
运行效果:
完毕~~~下节我们进入实战应用。
- UI控件之显示文本控件TextView(上)
- 33.TextView控件(界面上显示一段文本信息)
- TextView显示文本控件
- UI控件之TextView
- UI控件之显示图像控件ImageView(上)
- Android显示TextView文本控件
- Android UI 控件详解-TextView(文本视图)
- Android UI 控件之TextView
- Android UI控件之TextView
- UI控件之编辑文本控件EditText
- Android UI 之TextView控件属性列表
- UI控件之显示图像控件ImageView(下)
- UI控件--TextView
- 常见UI控件的使用-富文本、textview
- Android控件之文本控件---TextView 两种效果+SpannableString
- Android UI编程之自定义控件——可高亮显示的TextView
- j2me 低级UI控件之文本域
- 文本类控件 (TextView的介绍)
- 最小生成树之Kruskal和Prim算法——C++实现
- js获取元素具体样式属性值
- android studio 菜单中的app运行按钮上有个叉号,原因与解决办法
- 大数据关键技术
- 【leetCode】 Balanced Binary Tree python版实现
- UI控件之显示文本控件TextView(上)
- 保持你的应用程序响应
- ios 开发file's owner以及outlet与连线的理解
- 虚拟机中的Linux系统安装JDK
- Web移动端Fixed布局的解决方案
- ubuntu添加开机自启动程序
- 4、eclipse开发web的教程
- 树莓派挂载存储设备
- 利用vue.js把静态json绑定bootstrap的table