标签: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 android开发 textview html
原文地址:http://blog.csdn.net/u013476556/article/details/45047621