Android学习笔记01——TextView

概叙

在配置好环境,准备好工具就开始我们的开发之旅,本篇我们来学习TextView控件的用法,及其在XML中的属性;
首先我们还是先看看API文档提供的继承关系如图:


一、属性介绍
extView的属性有很多,但是在项目中常用到的就那么几个,不用刻意的记忆,多用用就记住了。
1. 在XML中写一个简单的TextView:

<span style="font-size:14px;"><TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:textColor="#07941a"
        android:textSize="18sp"
        android:text="这是一个简单的TextView" /></span>
其中有三个属性:
android:padding 表示文本和控件的内边距,还有paddingLeft,paddingRight....
android:text     设置显示文本  
android:textColor   设置文本颜色  
android:textSize     设置文字大小,度量单位”sp”
运行一下就是普通的TextView


2. 接下来看看其他效果;

代码如下:

<span style="font-size:14px;"><TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:drawableLeft="@mipmap/zem32"
        android:gravity="center_vertical"
        android:padding="5dp"
        android:textColor="#192cbf"
        android:textSize="18sp"
        android:textStyle="bold|italic"
        android:text="这是一个带表情的TextView" /></span>
在这段代码中我们添加了这几个属性:
android:drawableBottom   在text的下方显示图片
android:drawableLeft       在text的左边显示图片  
android:drawableRight     在text的右边显示图片
android:drawableTop       在text的正上方显示图片
android:gravity                 设置文本位置,如设置成“center”,文本将居中显示;center_vertical表示垂直居中
android:textStyle             设置字体,设置bold(粗体),italic(斜体);可以设置一个或多个,用“|”隔开  


3. 还有可以给文本设置链接:

代码如下:

<span style="font-size:14px;"><TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:padding="5dp"
        android:textAppearance="?attr/textAppearanceSearchResultTitle"
        android:autoLink="all"
        android:textColorLink="#07941a"
        android:textColorHighlight="#FFA70621"
        android:text="http://my.csdn.net/" /></span>

其中有四个属性:

android:autoLink     设置文本显示为可点击的链接。可选值有--none/web/email/phone/map,all包含了所有类型;
android:textColorHighlight   被选中文字的底色,默认为蓝色  
android:textColorLink   文字链接的颜色.  
android:textAppearance   设置文字外观。如“?android:attr/textAppearanceLargeInverse ”这里引用的是系统自带的一个外观,

? 表示系统是否有这种外观,否则使用默认的外观。


4. 还有像我们生活中见到广告牌的跑马灯效果:

代码如下:

<span style="font-size:14px;"><TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:ellipsize="marquee"
        android:marqueeRepeatLimit="marquee_forever"
        android:singleLine="true"
        android:textAppearance="?attr/textAppearanceSearchResultTitle"
        android:textColor="#FFA70621"
        android:textStyle="bold"
        android:text="Happiness is a way station between too much and too little." /></span>
属性介绍:
android:ellipsize   设置当文字过长时控件该如何显示,”start”-省略号显示在开头;”end”-省略号显示在结尾;”middle”-省略号显示在中间;
”marquee”-以跑马灯的方式显示

android:singleLine   设置单行显示,有两个值true和false
android:focusable   控件能否获取焦点
android:focusableInTouchMode 是否在触摸模式获取焦点
android:marqueeRepeatLimit="marquee_forever" 表示无限循环次
这都是系统自带的属性样式,下面我们设计自己的TextView


二、自定义TextView样式
首先我们在drawable文件夹中新建一个shape标签的XML文件,写入以下内容:

<span style="font-size:14px;"><?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">

    <stroke android:color="#000000" android:width="4dp"></stroke>

</shape></span>
然后在TextView属性中添加属性,引用我们的文件
<span style="font-size:14px;">android:background="@drawable/shape_rim"</span>
运行的效果:

我们通过stroke 标签是添加了一个边框,设置了颜色,宽度。感觉好丑啊,那我们来试试一个渐变的效果

代码如下:

<span style="font-size:14px;"><?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">

    <!--设置边框-->
    <stroke android:color="#000000" android:width="2dp"></stroke>
    <!--添加一个渐变色-->
    <gradient
        android:startColor="#FF1BD118"	//开始颜色
        android:centerColor="#9a18d1"	//中间颜色
        android:endColor="#d7092c"	//结束颜色
        android:angle="45"></gradient>	//旋转角度,必须是45的倍数
    <!--设置圆角-->
    <corners
        android:topLeftRadius="5dp"	//左上角
        android:topRightRadius="5dp"	//右上角
        android:bottomRightRadius="5dp"	//右下角
        android:bottomLeftRadius="5dp"></corners>  //左下角
</shape></span>
如果你四个圆角的度数是一样的可以一行代码搞定:

<span style="font-size:14px;"><corners android:radius="5dp" /></span>
最后别忘了在在TextView属性中添加属性,引用文件

<span style="font-size:14px;">android:background="@drawable/shape_shade"</span>

三、如果我们要标记文本中的某一段文字会怎么做呢?在android中有一种方法可以通过HTML标签来实现
比如我们在代码中可以这样:

<span style="font-size:14px;">/**改变文本部分字体颜色*/
txt1.setText(Html.fromHtml("理想是指路明灯:<font color=BLUE>没有理想,就没有坚定的方向,而没有方向,就没有生活。</font>\n—— 托尔斯泰"));
/**片段文本部分字体颜色*/
String str = "人生像攀登一座山,而找寻出路,却是一种学习的过程,我们应当在这过程中,学习稳定、冷静,学习如何从慌乱中找到生机\n——席慕蓉";
SpannableStringBuilder style = new SpannableStringBuilder(str);
style.setSpan(new ForegroundColorSpan(Color.GREEN),0,8, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
style.setSpan(new ForegroundColorSpan(Color.BLUE),8,24, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
style.setSpan(new ForegroundColorSpan(Color.LTGRAY),24,56, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
txt2.setText(style);</span>
这样就达到了我们的效果:



关于TextView就先这些,至于shape标签会在后叙中讲到,最后再看看TextView的其他属性:
android:maxEms   设置TextView的宽度为最长为N个字符的宽度。与ems同时使用时覆盖ems选项。  
android:minEms   设置TextView的宽度为最短为N个字符的宽度。与ems同时使用时覆盖ems选项。  
android:maxLength   限制显示的文本长度,超出部分不显示。  
android:lines   设置文本的行数,设置两行就显示两行,即使第二行没有数据。  
android:maxLines     设置文本的最大显示行数,与width或者layout_width结合使用,超出部分自动换行,超出行数将不显示。 
android:minLines     设置文本的最小行数,与lines类似。  
android:linksClickable 设置链接是否点击连接,即使设置了autoLink。  
android:lineSpacingExtra   设置行间距。  
android:lineSpacingMultiplier 设置行间距的倍数。如”1.2”  
android:shadowColor 指定文本阴影的颜色,需要与shadowRadius一起使用。效果:    
android:shadowDx     设置阴影横向坐标开始位置。  
android:shadowDy     设置阴影纵向坐标开始位置。  
android:shadowRadius   设置阴影的半径。设置为0.1就变成字体的颜色了,一般设置为3.0的效果比较好。  
android:maxHeight   设置文本区域的最大高度  
android:minHeight   设置文本区域的最小高度  
android:maxWidth   设置文本区域的最大宽度  
android:minWidth   设置文本区域的最小宽度  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值