- 浏览: 334818 次
- 性别:
- 来自: 上海
-
文章分类
最新评论
-
xuanyuanxiaoxue:
...
Android - LayoutInflater -
柴兴博:
不错 多谢
Android 悬浮Activity并可拖动(访悬浮歌词) -
di1984HIT:
写的很好,我收藏一下。
java之动态代理模式(JDK和cglib) -
chinacssnj:
待测试,明天测,测试的结果发给大家
网络开发上传文件到服务器 -
fx_199182:
...
Android之MediaPlayer
一:新建HelloTextView 工程
新建一个Hello world详细步骤可以参见
Android教程之三:第一个Android应用,HelloWorld
。创建设置如下:
- Project name:HelloTextView
- Build Target :android 2.2
- Application name:HelloTextView
- Package name:com.flysnow
- create Activity:HelloTextView
- 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>
<?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));//加粗
- }
- }
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的设计思想。
三:TextView的一些有用的实例
-
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>
<?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>
<?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>
<?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点后才能上网写。可能更新会很慢,请见谅,谢谢各位的支持
转自:http://flysnow.iteye.com/blog/822358
发表评论
-
Android中AsyncTask的简单用法
2012-01-13 16:00 1191在开发Android移动客户端的时候往往要使用多线程来进行操 ... -
Android应用的自动升级、更新模块的实现 .
2011-11-16 14:01 694http://www.eoeandroid.com/threa ... -
一个APK反编译利器Apktool
2011-11-16 13:54 1614一个APK反编译利器Apktool APK 本地化 ... -
自定义Android标题栏TitleBar布局
2011-11-14 14:13 1279很多网友发现自己Android程序的标题栏TitleBar区域 ... -
Android GPS获取地理位置 .
2011-11-14 14:11 881import android.app.Activity; i ... -
android ListView详解
2011-11-14 13:48 1082在android开发中ListView是比较常用的组件,它以列 ... -
Android之Content provider 详解
2011-11-14 13:35 2504Android是如何实现应用程序之间数据共享的?一个应用程序可 ... -
Android源码地址
2011-11-12 19:14 1072http://blog.csdn.net/ilittleone ... -
android之File
2011-11-11 22:39 20311:Fileservice package cn.itcas ... -
Android知识补漏
2011-11-09 22:33 01:AndroidManifiest.xml < ... -
深入剖析Android消息机制
2011-11-09 14:13 979在Android中,线程内部或者线程之间进行信息交互时经常会使 ... -
Android之Handler详解(四)
2011-11-09 14:00 1302d、自己创建新的线程,然后在新线程中创建Looper,主线程调 ... -
Android之Handler详解(三)
2011-11-09 13:58 1382c、将消息队列绑定到子线程上,主线程只管通过Handl ... -
Android之Handler详解(二)
2011-11-09 13:54 1692二:sendMessage版本的Handl ... -
Android之Handler详解(一)
2011-11-09 13:22 2325一个Handler允许你发送和处理消息(Message)以及 ... -
关于StartActivityForResult方法的使用
2011-10-31 17:11 1121根据方法名可知 这个方法是要得到启动后的Activity返回的 ... -
Android 悬浮Activity并可拖动(访悬浮歌词)
2011-10-24 16:23 2132天天动听, 这款Android手机上的音乐播放器,相信不少朋友 ... -
Android GWES
2011-10-24 16:13 1225第八章 Android GWES 8.1 View Syst ... -
Android系统服务-WindowManager
2011-10-24 16:10 1475WindowManager是Android中一个重要的服务 ... -
http通信
2011-10-15 17:31 1116HTTP(HyperText Transfer Proto ...
相关推荐
Android TextView小组件的使用--附带超链接和跑马灯效果源代码 对应博客地址http://blog.csdn.net/michael__li/article/details/6941388
- 由于性能和用户体验考虑,`TextView`的跑马灯效果默认不会立即启动,而是需要等待一段时间,用户可以通过修改`marqueeRepeatLimit`属性来控制滚动次数,设为0表示无限滚动。 - 如果布局中有多个`TextView`设置了...
本教程主要围绕如何在Android中使用`TextView` 实现跑马灯效果展开。首先,我们需要了解`TextView` 的基本属性和设置方法。在XML布局文件中,我们可以这样创建一个`TextView`: ```xml <TextView android:id="@+id...
实现TextView的跑马灯效果主要涉及到两个关键属性:`android:singleLine`和`android:ellipsize`。`android:singleLine`属性使得TextView只显示一行文本,超出部分会被隐藏;而`android:ellipsize`属性则定义了超出...
总结来说,这个压缩包文件提供了一种在Android中实现跑马灯效果和拖动文字的方法,开发者可以通过学习这些代码片段,了解如何自定义TextView以实现更丰富的交互功能。在实际应用中,开发者可能需要根据具体需求对...
要实现TextView的跑马灯效果,通常需要结合Android的属性和自定义布局来完成。以下是详细步骤和相关知识点: 1. **设置Ellipsize属性**: TextView有一个名为`ellipsize`的属性,它允许我们在文本过长时添加省略号...
- 当屏幕中多个TextView使用跑马灯效果时,只有一个能同时滚动,其他会暂停,直到当前焦点转移。 以上就是关于在Android中实现TextView跑马灯效果的主要技术点。在实际项目中,开发者可以根据需求调整这些设置,以...
跑马灯效果在Android开发中通常指的是TextView的一种特殊滚动显示方式,它能让文字在界面上循环滚动,类似于霓虹灯的效果。在Android中,我们可以通过自定义View或者使用已有的TextView属性来实现这一效果。本资源包...
下面我们将深入探讨如何使用TextView来实现跑马灯效果。 首先,TextView是Android SDK中一个非常基础且重要的组件,它主要用于显示单行或多行文本。要实现跑马灯效果,我们需要借助两个关键属性:`android:single...
在Android开发中,"TextView循环改变大小的跑马灯效果"是一种常见的动态UI设计,它可以使文本在TextView中持续滚动并动态改变大小,营造出引人注目的视觉体验。跑马灯效果通常用于显示较长的文本,当文本无法完全...
首先,要实现TextView的跑马灯效果,我们需要在XML布局文件中设置`android:singleLine="true"`(对于API 26及以上版本,需使用`android:maxLines="1"`)和`android:ellipsize="marquee"`。这将使TextView单行显示,...
本资源包"安卓textView相关-TextView的超链接字和不同色彩效果.rar"包含了一些关于如何在`TextView`中实现这些特性的示例和文档。 1. **超链接字**:在`TextView`中,我们可以通过`setMovementMethod()`方法和`...
在Android中,TextView的跑马灯效果是通过设置`android:singleLine`和`android:ellipsize`属性来实现的。`android:ellipsize`属性可以设置为`marquee`,从而激活跑马灯滚动。 首先,我们来看`MarqueeTest`这个可能...
本资源"Android高级应用源码-跑马灯效果MarqueTextView textview 循环 跑马灯效果.zip"提供了一个实现这一效果的示例,主要涉及到自定义控件MarqueTextView的使用。下面将详细介绍跑马灯效果的原理以及如何通过...
在Android开发中,TextView是用于显示单行或多行文本的视图组件,而"跑马灯效果"(Marquee)是一种特殊的效果,使得文本在TextView中像跑马灯一样不断滚动,尤其适用于显示过长的单行文本。这种效果通常在标题或者...
【跑马灯效果】在Android开发中,通常指的是TextView中的滚动文字效果,也称为Marquee效果,这种效果会让过长的文字在控件宽度内不断滚动,就像跑马灯一样。在老罗的视频中,他可能讲解了如何通过代码实现这一效果。...
跑马灯效果在Android开发中通常指的是TextView的一种特殊滚动显示方式,它能让文字在文本框内循环滚动,就像赌场中的跑马灯一样,因此被称为Marquee(跑马灯)效果。这种效果通常用于显示较长的文本,当文本无法在...
在Android开发中,为TextView添加跑马灯效果是一种常见的需求,它可以使得较长的文字在有限的空间内循环滚动显示,增加界面的动态感。本篇文章将详细讲解三种实现TextView跑马灯效果的方法。 ### 1. 使用`ellipsize...
在Android开发中,TextView是用于显示文本的基本组件,它在用户界面中扮演着至关重要的角色。这个名为"advanced-textview各种高级功能的textview.rar"的压缩包显然包含了一些扩展了标准TextView功能的示例或者库。让...