码迷,mamicode.com
首页 > 移动开发 > 详细

Android---11---TextView显示图片信息

时间:2015-04-14 21:32:43      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:android   android开发   textview   html   

用带html标签的文本显示图片信息:


import java.lang.reflect.Field;

import android.app.Activity;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.Html;
import android.text.Html.ImageGetter;
import android.text.method.LinkMovementMethod;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;

public class MainActivity extends Activity {

	private int getResousId(String name) {
		// TODO Auto-generated method stub
		// 根究资源的ID变量名,获得Field的对象,使用反射机制来实现的
		// Field 是字段 属性,用来存储一个类的属性值
		Field field;
		try {
			// class.getField(String name)
			// 用于返回一个指定名称的属性,但是这个属性必须是公有的,这个属性可以在父类中定义。
			// 如果是私有或者是保护属性,则会抛出异常提示找不到这个属性
			field = R.drawable.class.getField(name);
			// 取得并返回资源的id的字段(静态变量)的值,使用反射机制
			return Integer.parseInt(field.get(null).toString());
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return 0;

	}

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		TextView textView = (TextView) findViewById(R.id.textview);
		textView.setTextColor(Color.BLUE);
		String html = "图像1 <img src='image01'/>" + "\n"
				+ "图像2<img src='image02' />" + "\n";
		html += "图像3 <a href='http://www.baidu.com'><img src='image03' /></a>";

		CharSequence charSequence = Html.fromHtml(html, new ImageGetter() {

			@Override
			/*
			 * 获得系统的资源的信息,如图片信息 该方法 在此程序中会使用三次 因为是三张图 (non-Javadoc)
			 * 
			 * @see android.text.Html.ImageGetter#getDrawable(java.lang.String)
			 */
			public Drawable getDrawable(String source) {
				// TODO Auto-generated method stub
				// 得到系统资源的信息
				Drawable drawable = getResources().getDrawable(
						getResousId(source));

				// image03按照50%的比例缩放
				if (source.equals("image03")) {
					// setBounds 就是用来设置属性值得 左 上 右 下
					// getIntrinsicWidth() 得到实际宽度
					drawable.setBounds(0, 0, drawable.getIntrinsicWidth() / 2,
							drawable.getIntrinsicHeight() / 2);
				} else {
					drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),
							drawable.getIntrinsicHeight());
				}

				return drawable;
			}
		}, null);

		textView.setText(charSequence);
		// 点击响应
		textView.setMovementMethod(LinkMovementMethod.getInstance());
	}
}


Android---11---TextView显示图片信息

标签:android   android开发   textview   html   

原文地址:http://blog.csdn.net/u013476556/article/details/45047621

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!