Chinaunix首页 | 论坛 | 博客
  • 博客访问: 52595
  • 博文数量: 22
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 197
  • 用 户 组: 普通用户
  • 注册时间: 2013-12-16 17:30
文章分类
文章存档

2016年(1)

2014年(14)

2013年(7)

我的朋友

分类: Android平台

2014-01-03 11:31:33

跟大家介绍android源代码关于TextVie的几个简单效果和功能

一.TextView显示自我介绍

有关TextView的属性大家可以看这里:

textview这个控件就是用来显示文字的。我们在Eclipse中打开上一节建立的工程part1(大家也可以新建一个part2都是可以的)。

1.打开text_view.xml 我们来做第一个布局页面

这里跟大家说声,为了自己的应用程序能在更多的手机上使用,一般我们选用的SDK是2.1,我的教程里面是用SDK2.2的。

2.xml的开头写法

有的Eclipse里的ADT版本不同写法也不同,所以我采用一种通用的方法。

<、?xml version="1.0" encoding="utf-8"?>

<、LinearLayout xmlns:android=""

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<、!--在这里添加控件-->

<、/LinearLayout>

其中:

1android:orientation="vertical"<、span style="font-size:16px;font-family:'sans serif', tahoma, verdana, helvetica;line-height:1.5;"> 这个属性是设置你布局里的控件是要垂直显示的,horizontal值是水平显示。<、/span>

我们要添加的控件是在节点下的。节点开始是<>以作为结束。每对节点都是有头有尾的,里面在包含的节点我们称之为他的子节点。

text_view.xml 代码:

<、?xml version="1.0" encoding="utf-8"?>

<、LinearLayout xmlns:android=""

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<、TextView

android:id="@+id/name"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="姓名:Android淘气小公主"

android:textColor="#000000"

android:textSize="20sp"/>

<、TextView

android:id="@+id/sex"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="性别:女"

android:textColor="#000000"

android:textSize="20sp"/>

<、TextView

android:id="@+id/age"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="年龄:24"

android:textColor="#000000"

android:textSize="20sp"/>

<、TextView

android:id="@+id/xz"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="星座:巨蟹座"

android:textColor="#000000"

android:textSize="20sp"/>

<、TextView

android:id="@+id/xx"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="血型:O型"

android:textColor="#000000"

android:textSize="20sp"/>

<、TextView

android:id="@+id/boke"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="博客:http://blog.9tech.cn/emaoer"

android:textColor="#000000"

android:textSize="20sp"/>

<、TextView

android:id="@+id/weibo"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="微博:@Android淘气小公主"

android:textColor="#000000"

android:textSize="20sp"/>

<、TextView

android:id="@+id/work"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="工作:Android自由开发者"

android:textColor="#000000"

android:textSize="20sp"/>

<、/LinearLayout>

3.在TextViewActivity.java文件里我们要做的

首先,我们要知道程序在创建Activity的时候就要走他的onCreat()方法,所以我们要添加他的onCreat()方法。

然后我们要在他的方法里去声明控件的id,这点很总要。尤其,是要监的控件必须声明。Android是有R文件的,R文件里的东西我们是不可以修改的。

package com.tech.part2;

import android.app.Activity;

import android.os.Bundle;

import android.widget.TextView;

public class TextViewActivity extends Activity {

private TextView name,sex,age,xz,xx,weibo,boke,work;

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.text_view);//此方法是声明你的布局文件

//注册声明控件

name=(TextView)findViewById(R.id.name);

sex=(TextView)findViewById(R.id.sex);

age=(TextView)findViewById(R.id.age);

xz=(TextView)findViewById(R.id.xz);

xx=(TextView)findViewById(R.id.xx);

weibo=(TextView)findViewById(R.id.weibo);

boke=(TextView)findViewById(R.id.boke);

work=(TextView)findViewById(R.id.work);

}

}

二 TextView超链接功能

1.把地址直接编程超链接

在TextView控件属性中,添加android:autoLink="all"属性。

2.文字添加超级链接

我们可以用SpannableString这个类来帮我们完成任务。方法如下:

SpannableString spStr = new SpannableString(weibo.getText().toString());

spStr.setSpan(new URLSpan(""), 0, weibo.getText().toString().length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

weibo.setText(spStr); //修改textview内容

weibo.setMovementMethod(LinkMovementMethod.getInstance());

显然这个还不是理想效果的如何,从截图来看大家可以看到,博客下面也划线了。怎样处理呢?我们来用正则表达式吧。

SpannableString spStr = new SpannableString(weibo.getText().toString());

Pattern pattern = Pattern.compile("@([^>]*?s)|@([^>]*)");

Matcher matcher = pattern.matcher(spStr);

while (matcher.find()) {

spStr.setSpan(new URLSpan(""), matcher.start(),matcher.end(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

weibo.setText(spStr);

weibo.setMovementMethod(LinkMovementMethod.getInstance());

更多关于android源代码的信息,可查询天地会

阅读(424) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~