`

android textview里链接点击事件,增加图片

 
阅读更多
Android系统默认给TextView插入图片提供了三种方式:
1、ImageSpan
2、Html.ImageGetter
3、TextView.setCompoundDrawables(left, top, right, bottom)
1、TextView使用ImageSpan显示图片
ImageSpan span = new ImageSpan(this, R.drawable.ic_launcher);
SpannableString spanStr = new SpannableString("http://orgcent.com");
spanStr.setSpan(span, spanStr.length()-1, spanStr.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
mTVText.setText(spanStr);
PS:关于SpannableString相关的其他span,查看[Android教程]TextView使用SpannableString设置复合文本
2、使用Html.ImageGetter显示网页中的图片
查看文章:[Android教程]TextView显示Html类解析的网页和图片及自定义标签
3、在TextView四周显示图片
mTVText.setText("setCompoundDrawables");
Drawable d = getResources().getDrawable(R.drawable.ic_launcher);
d.setBounds(0, 0, 50, 50); //必须设置图片大小,否则不显示
mTVText.setCompoundDrawables(d , null, null, null);
 
 
不同点击事件
package com.example.textviewclick;
import android.app.Activity;
import android.os.Bundle;
import android.text.Html;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.TextPaint;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.text.style.URLSpan;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
    TextView mTextView2;    
    @Override
    public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
  setContentView(R.layout.textview); 
       
        mTextView2 = (TextView)findViewById(R.id.text2); 
        /*********** 同一个TextView不同文字的点击事件*******/
  StringBuilder actionText = new StringBuilder();
  actionText
    .append("<a style=\"text-decoration:none;\" href='username'>"
      + "username:" + " </a>");
  actionText
    .append("隐形人"
      + "<a style=\"color:blue;text-decoration:none;\" href='singstar'> "
      + " love" + "</a>");
   actionText.append(" : \"" + "孙燕姿" + "\"");
  mTextView2.setText(Html.fromHtml(actionText.toString()));
  mTextView2.setMovementMethod(LinkMovementMethod
    .getInstance());
  CharSequence text = mTextView2.getText();
  int ends = text.length();
  Spannable spannable = (Spannable) mTextView2.getText();
  URLSpan[] urlspan = spannable.getSpans(0, ends, URLSpan.class);
  SpannableStringBuilder stylesBuilder = new SpannableStringBuilder(text);
  stylesBuilder.clearSpans(); // should clear old spans
  for (URLSpan url : urlspan) {
   TextViewURLSpan myURLSpan = new TextViewURLSpan(url.getURL());
   stylesBuilder.setSpan(myURLSpan, spannable.getSpanStart(url),
     spannable.getSpanEnd(url), spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  }
  mTextView2.setText(stylesBuilder);
    }
   
    private class TextViewURLSpan extends ClickableSpan {
  private String clickString;
  public TextViewURLSpan(String clickString) {
   this.clickString = clickString;
  }
  @Override
  public void updateDrawState(TextPaint ds) {
      ds.setColor(MainActivity.this.getResources().getColor(R.color.text_color));
      ds.setUnderlineText(false); //去掉下划线
  }
  
  @Override
  public void onClick(View widget) {
   if (clickString.equals("username")) {
    Toast.makeText(getApplication(), clickString, Toast.LENGTH_LONG)
    .show();
   } else if (clickString.equals("singstar")) {
    Toast.makeText(getApplication(), clickString, Toast.LENGTH_LONG)
      .show();
   }
  }
 }
}
分享到:
评论

相关推荐

    Android RichText 让Textview轻松的支持富文本(图像ImageSpan、点击效果等等类似QQ微信聊天)

    AndroidRichText帮助实现像QQ,微信一样的,一个TextView里既有文字又有表情又有图片的效果,采用插件化的框架,代码简单,可拓展性强。 基础框架包只有四个java文件, RichTextWrapper :TextView的包裹类,实现...

    TextView增加图片和超连接

    在Android开发中,`TextView`是用于展示文本的常用组件,它简单易用且功能强大。当需要在`TextView`中不仅展示纯文本,还要加入图片或者超链接时,我们可以利用一些特殊的方法来实现。本篇文章将深入探讨如何在`...

    Android例子源码20多种TextView文字效果例子

    20. **点击事件监听**:通过设置OnClickListener,可以监听TextView的点击事件,实现相应功能。 这些示例涵盖了TextView的基本和高级用法,开发者可以根据需求灵活运用,为用户提供更丰富的交互体验。通过深入理解...

    HtmlTextView

    在Android开发中,`HtmlTextView`是一个用于展示富文本的组件,它扩展了标准的`TextView`类,增加了对HTML格式的支持。富文本通常包含了文本、图像、链接、颜色、字体样式等多种元素,使得文本展示更为生动丰富。...

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

    开发者还可以自定义TextView,扩展其功能,例如增加图片选择、富文本编辑等特性。 总之,TextView是Android开发中不可或缺的一部分,理解和熟练掌握其用法和特性,对于构建高质量的用户界面至关重要。通过深入研究...

    安卓textView相关-Android实现类似朋友圈评论的功能TextView分段操作.rar

    为了实现评论的交互功能,比如点击后查看详细信息或回复,我们需要为每个评论的TextView添加点击事件监听器。可以使用`setOnClickListener()`方法,然后在回调中处理相应的业务逻辑。 6. **动态加载和优化性能** ...

    TextView属性详解

    - **`android:autoLink`**:此属性用于识别文本中的URL链接、电子邮件地址、电话号码或地图地址,并自动将其转换为可点击的链接。支持的值包括`none`(不转换任何链接)、`web`(仅转换URL链接)、`email`(仅转换...

    TextView自定义字体,风格,超链接等效果

    对于内部超链接,`Linkify`类可以帮助我们自动识别文本中的URL并添加点击事件。同时,我们还可以自定义链接样式: ```java Linkify.addLinks(textView, Linkify.WEB_URLS); Linkify.MatchFilter matchFilter = new ...

    TextView属性

    - **功能**:设置文本中的URL链接、电子邮件地址、电话号码或地图地址等是否应该被识别为可点击的链接。 - **参数**: - `none`:不进行任何链接转换。 - `web`:仅将URL地址转换为链接。 - `email`:将电子邮件...

    TextView 高级用法.zip

    9. **链接点击处理** 对于包含网址、邮箱地址或其他可点击内容的文本,AdvancedTextView可以自动识别并处理这些链接,方便用户直接操作。 10. **性能优化** 开源项目往往注重性能优化,AdvancedTextView可能通过...

    Android走马灯学校活动界面超链实验报告.docx

    这段代码展示了三个TextView的设置,第一个用于实现走马灯效果,第二个设置中心对齐并带有左右图片,第三个则设置了自动链接,并包含电话、邮件和网址信息。 总之,这个实验提供了全面的Android UI设计和交互实现...

    安卓富文本编辑器相关-Android图文混排发帖.rar

    7. **事件处理**:添加点击事件监听,如点击图片或链接跳转至相应页面。 由于压缩包没有提供具体代码,这里只能给出一般性的解释。实际应用中,开发者可能需要根据具体需求调整和优化这些技术,例如优化性能、处理...

    android——API中文文档

    - **android:autoLink**: 设置是否将文本中的URL、email地址、电话号码、地图等转化为可点击的链接。 - **android:autoText**: 设置是否启用拼写检查功能。 - **android:bufferType**: 指定获取文本的方式,支持`...

    A0210按钮Button的使用1

    在实际应用中,我们通常会使用OnClickListener接口来添加点击事件监听,而不是直接在XML中设置`android:onClick`。这样可以使代码更灵活,易于维护: ```java button.setOnClickListener(new View.OnClickListener...

    android listview实现新闻列表展示效果 .zip

    综上所述,实现"android listview实现新闻列表展示效果"需要理解ListView的工作原理,熟练运用Adapter,设计数据模型,创建布局文件,处理点击事件,优化性能,并可能涉及到网络请求和图片加载。通过这个项目,你...

    AdvancedTextView,一、文本视图。.zip

    4. **链接点击事件**:AdvancedTextView能够识别并处理文本中的URL,用户可以直接在文本中设置点击事件,实现链接跳转,而无需额外的代码处理。 5. **动画效果**:为了增加用户体验,AdvancedTextView还提供了文本...

    textView 添加超链接(两种实现方式)

    在Android开发中,当需要在`TextView`中展示带有超链接的内容时,有两种常见的实现方式。...同时,`setAutoLinkMask()`还可以用于识别和链接其他类型的文本,如电话号码,增加了`TextView`的功能多样性。

    LoginUI-Android.zip

    在Android中,我们可以使用EditText控件来创建输入框,Button控件用于创建可点击的按钮,TextView则可以用来显示提示文字。为了保护用户隐私,密码输入框可能还会使用InputType属性设置为"password",使得输入内容以...

    03-Button.

    在Android开发中,按钮(Button)是一个非常基础且重要的组件,它是TextView的一个特殊形式,用于显示文本并响应用户的点击事件。在本节中,我们将深入探讨Android中的Button控件及其在实际应用中的使用。 首先,...

Global site tag (gtag.js) - Google Analytics