今天我们主要讲解的是TextView里面显示图片及图片链接的。首先让我们看一下实现效果吧。
步骤:1.设置一个TextView控件
3.通过charsequence获取可编辑字符串
4.通过 textview.setText(charsequence)方法设置空间显示内容。
5.解析出来的image文件名字,通过反射取得R.java里面对应的id值。
6.设置鼠标事件:setMovmenMothod方法。
布局文件:mian.xml
<TextView android:id="@+id/textview1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#FFF" android:layout_margin="10dp" />
主Activity:AndroidTextview2Activity.java
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); textView = (TextView) findViewById(R.id.textview1); String html = "图像1<img src='image1'/>图像2<img src='image2'/>图像3<img src='image3'/>" + "图像4<a href='http://www.baidu.com'><img src='image4'/></a>图像5<img src='image5'/>"; CharSequence charSequence = Html.fromHtml(html, new ImageGetter() { @Override public Drawable getDrawable(String source) { // TODO Auto-generated method stub Drawable drawable; try { drawable = getResources().getDrawable( getResourceById(source)); if (source.equals("图片3")) { drawable.setBounds(0, 0, drawable.getIntrinsicWidth() / 2, drawable.getIntrinsicHeight() / 2); } else { drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); } return drawable; } catch (NotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } }, null); textView.setText(charSequence); textView.setMovementMethod(LinkMovementMethod.getInstance()); }
//通过反射的方法后的图片id
public int getResourceById(String name) throws Exception, Exception { Field field = R.drawable.class.getField(name); return Integer.parseInt(field.get(null).toString()); }