先把源码附上:ApiDemos->Text->Link.java
/*
* Copyright (C) 2007 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.example.android.apis.text;
import com.example.android.apis.R;
import android.app.Activity;
import android.graphics.Typeface;
import android.os.Bundle;
import android.text.Html;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.method.LinkMovementMethod;
import android.text.style.StyleSpan;
import android.text.style.URLSpan;
import android.widget.TextView;
public class Link extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.link);
// text1 shows the android:autoLink property, which
// automatically linkifies things like URLs and phone numbers
// found in the text. No java code is needed to make this
// work.
// text2 has links specified by putting <a> tags in the string
// resource. By default these links will appear but not
// respond to user input. To make them active, you need to
// call setMovementMethod() on the TextView object.
TextView t2 = (TextView) findViewById(R.id.text2);
t2.setMovementMethod(LinkMovementMethod.getInstance());
// text3 shows creating text with links from HTML in the Java
// code, rather than from a string resource. Note that for a
// fixed string, using a (localizable) resource as shown above
// is usually a better way to go; this example is intended to
// illustrate how you might display text that came from a
// dynamic source (eg, the network).
TextView t3 = (TextView) findViewById(R.id.text3);
t3.setText(
Html.fromHtml(
"<b>text3:</b> Text with a " +
"<a href=\"http://www.google.com\">link</a> " +
"created in the Java source code using HTML."));
t3.setMovementMethod(LinkMovementMethod.getInstance());
// text4 illustrates constructing a styled string containing a
// link without using HTML at all. Again, for a fixed string
// you should probably be using a string resource, not a
// hardcoded value.
SpannableString ss = new SpannableString(
"text4: Click here to dial the phone.");
ss.setSpan(new StyleSpan(Typeface.BOLD), 0, 6,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new URLSpan("tel:4155551212"), 13, 17,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
TextView t4 = (TextView) findViewById(R.id.text4);
t4.setText(ss);
t4.setMovementMethod(LinkMovementMethod.getInstance());
}
}
再把布局代码附上:ApiDemos->res->layout->link.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2007 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<!-- Four TextView widgets, each one displaying text containing links. -->
<!-- text1 automatically linkifies things like URLs and phone numbers. -->
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:autoLink="all"
android:text="@string/link_text_auto"
/>
<!-- text2 uses a string resource containing explicit <a> tags to
specify links. -->
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/link_text_manual"
/>
<!-- text3 builds the text in the Java code using HTML. -->
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text3"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
<!-- text4 builds the text in the Java code without using HTML. -->
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text4"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>
再把相关的字符资源贴上:ApiDemos->res->values->strings.xml
<string name="link_text_auto"><b>text1:</b> This is some text. In
this text are some things that are actionable. For instance,
you can click on http://www.google.com and it will launch the
web browser. You can click on google.com too. And, if you
click on (415) 555-1212 it should dial the phone.
</string>
<string name="link_text_manual"><b>text2:</b> This is some other
text, with a <a href="http://www.google.com">link</a> specified
via an <a> tag. Use a \"tel:\" URL
to <a href="tel:4155551212">dial a phone number</a>.
</string>
最后上效果图:
这里重点说一些讲解吧!
1.设置TextView支持Html内容:
TextView tv= (TextView) findViewById(R.id.text3);
tv.setText(Html.fromHtml("<b>text:</b> Text with a " +
"<a href=\"http://www.google.com\">link</a> " + created in the Java source code using HTML."));
2.设置TextView支持滚动:
tv.setMovementMethod(LinkMovementMethod.getInstance());
3.设置TextView支持点击拨打电话:
SpannableString ss = new SpannableString("text4: Click here to dial the phone.");
ss.setSpan(new StyleSpan(Typeface.BOLD), 0, 6,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new URLSpan("tel:4155551212"), 13, 17,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
TextView t4 = (TextView) findViewById(R.id.text4);
t4.setText(ss);
t4.setMovementMethod(LinkMovementMethod.getInstance());
..... 待续,go to 饭...
- 大小: 17.3 KB
分享到:
相关推荐
Android定制控件: 1、带图标的TextView 2、带图标的可编辑文本框 3、全屏背景图片 4、设置TextView和可编辑文本框内文字的颜色值
4、如果一切正常,那么你会在虚拟设备看到常用的控件(包括TextView, EditText,AutoCompleteTextView,MultiAutoCompleteTextView,Button,ImageButton,ToggleButton,CheckBox和RadioButton),根据中文提示操作。...
Android定制控件: 1、带图标的TextView 2、带图标的可编辑文本框 3、全屏背景图片 4、设置TextView和可编辑文本框内文字的颜色值 5、附效果图和项目结构图
Android TextView 控件例子
在android中,文本控件主要包括TextView控件和EditView... 您可能感兴趣的文章:Android控件系列之TextView使用介绍Android开发技巧之在a标签或TextView控件中单击链接弹出Activity(自定义动作)Android AutoCompleteText
android 开发进阶 自定义控件 类似 TextView
Android开发过程中可能很多人都遇到过这样的问题,那就是TextView上下内边距的问题。使用TextView控件的时候由于其内边距导致与UI效果相差甚远。很是让不少程序猿难受,也包括我自己因为这个原因也没少和UI设计师打...
雨松MOMO带你做软件 Android软件开发之TextView详解源码
android TextView android TextView
一个自定义的android的翻转textview,效果很不错的
TextView是Android中很常用的用于显示文字(字符串)的控件,可以在代码中设置TextView控件属性,改变文字的大小、颜色、样式等。 其中: android:layout_width和android:layout_height用于设置控件的宽和高,match_...
常用控件:TextView EditText Button 项目文件
android中TextView控件的一些常用效果:HTML设置样式、TextView点击事件,TextView跑马灯效果,TextView显示图片效果。
android控件详解----TextView
闪电战:Android库:在TextView中设置具有相对时间的自我更新字符串(例如5分钟前)
本节为大家介绍TextView、Button、ImageView、ImageButton、AnalogClock、DigitalClock时间控件
AndroidRichText帮助实现像QQ,微信一样的,一个TextView里既有文字又有表情又有图片的效果,采用插件化的框架,代码简单,可拓展性强。 基础框架包只有四个java文件, RichTextWrapper :TextView的包裹类,实现...
Android TextView 去掉自适应默认的fontpadding的实现方法 最近在项目中使用textview时发现在使用Android:layout_height=”wrap_content”这个属性设置后,textview会有默认的padding,也就是fontpadding。这样就会...
自定义的可折叠的文本显示控件(自定义View)
本文实例讲述了Android TextView实现垂直滚动效果的方法。分享给大家供大家参考,具体如下: 在TextView中,如果文本很长,可能需要实现垂直滚动显示文本的效果。这里需要在XML布局文件中为TextView设置如下几个属性...