Android---11---TextView显示图片信息
用带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()); } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。