Android如何在TextView中显示图片

    大家好,今天和大家分享如何在TextView中加入图片的功能,有两种方式,第一种是继承TextView实现图片通过重写来实现图片的显示功能,第二种是利用现成的api实现图片的显示功能。我们知道TextView支持部分HTML标签,但是想在TextView中加入图片则怎么做呢?直接通过<img src=""/>标签肯定是不行的。通过查看API我们发现有这样一个静态的方法:
public static Spanned fromHtml (String source, Html.ImageGetter imageGetter, Html.TagHandler tagHandler) 
那么是不是只要实现其中的Html.ImageGetter就可以加入图片呢?答案是肯定的!

还是别废话吧,代码最直观大笑
package org.winplus.demo;

import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.Html;
import android.text.Html.ImageGetter;
import android.widget.TextView;

public class TextViewDemoActivity extends Activity {

	private TextView txtWecome;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		setupViews();
	}

	private void setupViews() {
		txtWecome = (TextView) findViewById(R.id.wecome);
		txtWecome.append(Html.fromHtml("<img src='"+R.drawable.tangcheng_ok+"'/>", imageGetter, null));
	}

	ImageGetter imageGetter = new ImageGetter() {

		@Override
		public Drawable getDrawable(String source) {
			int id = Integer.parseInt(source);
			Drawable drawable = getResources().getDrawable(id);
			drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight());
			return drawable;
		}
	};
}

这是效果图:


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Android ,可以通过以下两种方式在 TextView 显示图片: 1. 使用 HTML 标记 可以在 TextView 使用 HTML 标记来显示图片。具体做法如下: 在 strings.xml 定义一个包含 HTML 标记的字符串: ```xml <string name="html_text">这是一个包含图片的文本:<br><img src="android.resource://com.example.app/drawable/ic_launcher"/></string> ``` 在代码获取该字符串,并将其设置给 TextView: ```java textView.setText(Html.fromHtml(getString(R.string.html_text))); ``` 其,`android.resource://com.example.app/drawable/ic_launcher` 是图片的路径,需要根据实际情况进行修改。 2. 使用 SpannableString 使用 SpannableString 可以在 TextView 插入图片,并且可以控制图片的大小和位置。具体做法如下: ```java SpannableString spannableString = new SpannableString("这是一个包含图片的文本:"); Drawable drawable = getResources().getDrawable(R.drawable.ic_launcher); drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); ImageSpan imageSpan = new ImageSpan(drawable, ImageSpan.ALIGN_BASELINE); spannableString.setSpan(imageSpan, spannableString.length() - 1, spannableString.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE); textView.setText(spannableString); ``` 其,`R.drawable.ic_launcher` 是图片的资源 ID,需要根据实际情况进行修改。`setBounds()` 方法用于设置图片的大小和位置,`ALIGN_BASELINE` 表示将图片和基线对齐。`setSpan()` 方法用于将图片插入到 SpannableString

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值