`

Android系列教程之六:TextView小组件的使用--附带超链接和跑马灯效果

阅读更多
写道
这两天忙着我的应用“我团”的更新,这边的文章更新慢了很多,请各位见谅!这节主要介绍一下TextView的简单用法,以及超链接文本、跑马灯等实例。

 

我新建了一个Android的技术交流群,群号为86686524   120059404 ,感兴趣的可以申请加入,大家一块学习。

Android系列教程目录:

  1. Android教程之一:Window下搭建Android开发环境

  2. Android教程之二:Linux下搭建Android开发环境

  3. Android教程之三:第一个Android应用,HelloWorld

  4. Android系列教程之四:Android项目的目录结构

  5. Android系列教程之五:Activity的生命周期

 

本文版权归飞雪无情 所有,转载请注明出处, 永久链接: http://flysnow.iteye.com/blog/822358

 

 一:新建HelloTextView 工程

新建一个Hello world详细步骤可以参见

Android教程之三:第一个Android应用,HelloWorld

。创建设置如下:

  1. Project name:HelloTextView
  2. Build Target :android 2.2
  3. Application name:HelloTextView
  4. Package name:com.flysnow
  5. create Activity:HelloTextView
  6. min SDK 8

然后运行该应用就可以看到TextView的效果,是显示一行字:“Hello World, HelloTextView!”,这是因为新建的Hello项目自带的一个TextView。

二:分析TextView组件

TextView是Android中常用的组件之一,可以用他来显示文字,就像一个标签一样,或者你可以认为是html中的span。对于TextView我们最关心的应该是怎么设置显示的文本,怎样设置字体的大小,字体的颜色,字体的样式,

其实很简单,TextView中提供了大量的属性帮我们配置TextView。

1.修改xml配置文件实现。

我们修改main.xml如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
    android:textColor="#ff0000"
    android:textSize="24sp"
    android:textStyle="bold"
    android:text="@string/hello"
    />
</LinearLayout>

 这里增加了三个属性的设置,分别是android:textColor="#ff0000"设置字体为红色,android:textSize="24sp"设置字体为24sp, android:textStyle="bold"设置字体加粗,预览效果如下图:


看到我们的TextView的内容已经变成红色,24sp大,加粗。。

2.修改java代码实现。

同样我们不修改xml文件,而是通过java编码来实现上面的图示效果,首先我们先给这个TextView分配一个id,也就是这个TextView的标记记号,方便我们找到他。在main.xml的TextView中加入android:id="@+id/text_view"就可以为该TextView分配一个id。。这里@+id/是表示在R类的id类下新增常量字段,这里的常量字段是text_view。

下面修改HelloTextView类如下:

package com.flysnow;

import android.app.Activity;
import android.graphics.Color;
import android.graphics.Typeface;
import android.os.Bundle;
import android.util.TypedValue;
import android.widget.TextView;

public class HelloTextView extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);//设置内容显示的xml布局文件
        TextView textView=(TextView)findViewById(R.id.text_view);//取得我们的TextView组件
        textView.setTextColor(Color.RED);//设置成红色
        textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 24f);//设置成24sp
        textView.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));//加粗
    }
}

 最终结果和上图一样的,这说明通过代码和xml配置都可以定制TextView,但是推荐使用xml进行定制,使用java代码控制逻辑,这符合mvc模式,也符合Android的设计思想。

飞雪无情 写道
这里说一下度量单位。度量单位有很多,如px,pt,dip,sp等等。不过建议应该使用sp作为字体大小的单位,使用dip作为其他元素的单位。。因为sp是刻度无关的像素,更重要的是他可以根据用户的字体大小的首选项进行缩放,这才是重要的,这样当你调整了整体的字体大小时不至于使得个别字体的大小不一致而影响美观。

 三:TextView的一些有用的实例

  1. TextView的超链接形势。我们应该都见过html中的超链接,加一个a标记就可以让一段文字变成超链接的形式,可以点击到连接的地址。那么TextView可以实现吗?作为强大的TextView当然不会忘记这一点。TextView为我们提供了android:autoLink属性,只要把他设置成“web”,那么该TextView中的是网址形势的文件就会自动变成超链接的形式。好了,耳听为虚,眼见为实,看下面的例子。修改strings.xml为:
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string name="hello">我的博客地址是:http://flysnow.iteye.com    \n我的电话是:400-34534-500\n我的email是12235@163.com</string>
        <string name="app_name">HelloTextView</string>
    </resources>
      修改main.xml为:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
    <TextView 
    	android:id="@+id/text_view"
    	android:autoLink="web"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:text="@string/hello"
        />
    </LinearLayout>
     然后把HelloTextView类中的那一段设置文本颜色、大小和样式的代码注释掉,运行程序就会看到如下图的效果:

     当我们点击蓝色的我的博客的网址的时候,Android系统就会调用默认的web浏览器打开我的博客。

 有的朋友已经注意到了,文本里我还写了我的电话和email,难道TextView也支持电话和email超链接吗?没错,的确支持,当我们设置android:autoLink="phone"的时候,文本里的电话就会变成蓝色超链接形式,点击就会打开拨号界面等待你按通话键拨号,email也是同理。。

 

当我们把 android:autoLink换成phone的时候发现网址不超连接了,换成email也是一样。难道我们不能一下子让网址,电话,email都超链接吗?答案是肯定的,这时候我们可以把 android:autoLink设置成all,这样里面的网址、电话和email就都可以超链接了。

2.跑马丁效果。有时候我们要显示的文本较长,TextView不能完全显示,这时候可以通过这中跑马灯的方式让文本移动展示,达到了既不占用地方又能完全看到文本的目的。这里直接复用农民伯伯的跑马灯代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView 
	android:id="@+id/text_view"
	android:autoLink="all"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
    android:text="@string/hello"
    android:ellipsize="marquee" 
    android:focusable="true" 
    android:marqueeRepeatLimit="marquee_forever" 
    android:focusableInTouchMode="true" 
    android:scrollHorizontally="true"/>
</LinearLayout>

 

然后为TextView设置一个很长的字符串。运行就可以看到横向移动的效果。

 设置的属性说明可以参考TextView的文档,这里也有中文版本:TextView中文API文档   

这里要进行说明的是:以上设置在大部分情况下都会成功的展示跑马灯样式,但是在一些复杂的布局中就会看不到任何文字。比如我开发的Android应用“我团”,在展示团购详细信息页面,我自定义了一个标题栏让其显示团购的信息,想让其跑马灯的方式显示,但是使用了上述代码后看不到文字,其实是文字被撑下来的,这时候我们设置android:singleLine="true"以单行的方式展示就好了。所以请以后实现跑马灯效果的时候最好加上android:singleLine="true"单行展示。。

四:小结

好了,一个TextView也啰嗦了那么多,希望大家能听明白,最后两个实用的例子能帮助大家更好的学习和使用TextView。。这两天JE挂了,没来得及更新,对不起大家了。最近忙于升级“我团”应用,也只能网上10点后才能上网写。可能更新会很慢,请见谅,谢谢各位的支持。

  • 大小: 2 KB
  • 大小: 9.4 KB
  • 大小: 9 KB
  • 大小: 4 KB
17
2
分享到:
评论
8 楼 luna_2006 2013-11-25  
楼主威武,看着多入门的,唯有楼主的能看的下去
7 楼 bingyingao 2013-02-26  
通俗易懂,又辅以源码,实乃android入门之神奇,楼主真神人也
6 楼 Mr.snail 2013-01-25  
赞一个,浅显易懂
5 楼 飞雪无情 2010-12-06  
ninggeng 写道
楼主给点力啊.

多谢支持
4 楼 ninggeng 2010-12-06  
楼主给点力啊.
3 楼 kongzhizhen 2010-11-26  
LZ快快更新吧。
期待LZ快速更新。
图文并茂,很容易懂。
期待LZ在后面的Bundle,Content Provider,Service等那些章节讲的更加详细点。
2 楼 飞雪无情 2010-11-25  
haizibie453 写道
LZ,做android开发多久了,我刚转入这行,目前在一家外包公司做一款android中间件,之前是在windows mobile手机上面实现的,现在要在android手机上实现相同的功能,公司准备用service 实现,主要用到的技术东西还是通信方面的。有问题能否向楼主赐教。谢谢先。

此角不敢当,大家一块探讨吧!
1 楼 haizibie453 2010-11-25  
LZ,做android开发多久了,我刚转入这行,目前在一家外包公司做一款android中间件,之前是在windows mobile手机上面实现的,现在要在android手机上实现相同的功能,公司准备用service 实现,主要用到的技术东西还是通信方面的。有问题能否向楼主赐教。谢谢先。

相关推荐

    Android TextView小组件的使用--附带超链接和跑马灯效果源代码

    Android TextView小组件的使用--附带超链接和跑马灯效果源代码 对应博客地址http://blog.csdn.net/michael__li/article/details/6941388

    android TextView 跑马灯效果

    实现TextView的跑马灯效果主要涉及到两个关键属性:`android:singleLine`和`android:ellipsize`。`android:singleLine`属性使得TextView只显示一行文本,超出部分会被隐藏;而`android:ellipsize`属性则定义了超出...

    简单的textview 跑马灯效果 可直接使用

    - `android:focusable` 和 `android:focusableInTouchMode`:两者都设置为`true`,确保TextView获取焦点并启动跑马灯效果。 2. **焦点管理**: - 跑马灯效果只有在TextView获得焦点时才会启动。因此,可能需要在...

    实现textView 跑马灯效果

    要实现TextView的跑马灯效果,通常需要结合Android的属性和自定义布局来完成。以下是详细步骤和相关知识点: 1. **设置Ellipsize属性**: TextView有一个名为`ellipsize`的属性,它允许我们在文本过长时添加省略号...

    使用TextView实现跑马灯效果

    本教程主要围绕如何在Android中使用`TextView` 实现跑马灯效果展开。首先,我们需要了解`TextView` 的基本属性和设置方法。在XML布局文件中,我们可以这样创建一个`TextView`: ```xml &lt;TextView android:id="@+id...

    android:textview组件用例

    在Android开发中,TextView是应用最广泛的视图组件之一,用于显示单行或多行文本。它不仅能够简单地展示文本,还可以通过设置各种属性来实现丰富的文本格式化和交互功能。下面将详细介绍TextView组件及其主要属性的...

    安卓textView相关-通过改变TextView实现跑马灯效果并且触摸滑动时可以拖动文字.rar

    总结来说,这个压缩包文件提供了一种在Android中实现跑马灯效果和拖动文字的方法,开发者可以通过学习这些代码片段,了解如何自定义TextView以实现更丰富的交互功能。在实际应用中,开发者可能需要根据具体需求对...

    TextView滚动,跑马灯效果终极解决方案

    首先,要实现TextView的跑马灯效果,我们需要在XML布局文件中设置`android:singleLine="true"`(对于API 26及以上版本,需使用`android:maxLines="1"`)和`android:ellipsize="marquee"`。这将使TextView单行显示,...

    android三种方式实现TextView跑马灯效果

    在Android开发中,为TextView添加跑马灯效果是一种常见的需求,它可以使得较长的文字在有限的空间内循环滚动显示,增加界面的动态感。本篇文章将详细讲解三种实现TextView跑马灯效果的方法。 ### 1. 使用`ellipsize...

    TextView 实现文字滚动播放效果效果(跑马灯)

    - 由于性能和用户体验考虑,`TextView`的跑马灯效果默认不会立即启动,而是需要等待一段时间,用户可以通过修改`marqueeRepeatLimit`属性来控制滚动次数,设为0表示无限滚动。 - 如果布局中有多个`TextView`设置了...

    《Android开发视频教程》第四集:TextView实现跑马灯效果.zip

    《Android开发视频教程》第四集:TextView实现跑马灯效果.zip

    Android学习笔记四:基本视图组件:TextView

    在Android开发中,基本视图组件是构建用户界面的基础元素,TextView作为其中之一,扮演着至关重要的角色。TextView用于展示文本信息,它不仅能够显示简单的静态文本,还可以支持动态文本更新、格式化显示以及多种...

    特效-textView跑马灯

    在Android开发中,"特效-textView跑马灯"是一种常见的UI动态效果,它通常用于显示滚动的文字信息,比如新闻标题或者广告标语。这种效果模仿了实际生活中的跑马灯,即文字在一个固定区域里循环滚动,给人一种连续不断...

    android textview 无焦点 跑马灯 水平滚动

    本篇文章将详细介绍如何在Android中实现TextView的无焦点跑马灯和水平滚动效果。 首先,我们需要理解TextView的基础属性。`android:singleLine`属性用于将文本限制为一行,`android:ellipsize`属性则控制当文本超出...

    Android高级应用源码-跑马灯效果MarqueTextView textview 循环 跑马灯效果.zip

    本资源"Android高级应用源码-跑马灯效果MarqueTextView textview 循环 跑马灯效果.zip"提供了一个实现这一效果的示例,主要涉及到自定义控件MarqueTextView的使用。下面将详细介绍跑马灯效果的原理以及如何通过...

    TextView循环改变大小的跑马灯效果

    在Android开发中,"TextView循环改变大小的跑马灯效果"是一种常见的动态UI设计,它可以使文本在TextView中持续滚动并动态改变大小,营造出引人注目的视觉体验。跑马灯效果通常用于显示较长的文本,当文本无法完全...

    androidTextView实现跑马灯的效果

    标题和描述中提到的“跑马灯效果”是指在`TextView`中,当文本内容过长无法完全显示时,文本会从一侧滚动到另一侧,形成循环滚动的效果。这种效果在通知栏、广告条或者状态栏等场景中较为常见。 实现跑马灯效果的...

    老罗视频代码textview跑马灯效果

    【跑马灯效果】在Android开发中,通常指的是TextView中的滚动文字效果,也称为Marquee效果,这种效果会让过长的文字在控件宽度内不断滚动,就像跑马灯一样。在老罗的视频中,他可能讲解了如何通过代码实现这一效果。...

    android TextView跑马灯

    以上就是关于Android中TextView跑马灯效果的基本介绍和实现方法。通过合理设置属性和编写适当的代码,我们可以创建出满足需求的跑马灯效果。同时,自定义的MarqueeTextView可能会提供更丰富的定制选项,以适应各种...

Global site tag (gtag.js) - Google Analytics