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

来源:互联网 发布:java如何转换日期格式 编辑:程序博客网 时间:2024/04/30 13:47

用带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 blocke.printStackTrace();}return 0;}@Overrideprotected 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());}}


0 0