Android TextView里直接显示图片的三种方法
方法一:重寫TextView的onDraw方法,也挺直觀就是不太好控制顯示完圖片后再顯示字體所占空間的位置關系。一般如果字體是在圖片上重疊的推薦這樣寫。時間關系,這個不付源碼了。
方法二:利用TextView支持部分Html的特性,直接用api賦圖片。代碼如下:
<span style="margin: 0px; padding: 0px; border: 0px; font-size: 18px; font-family: 'Comic Sans MS'; background: transparent;">//第一種方法在TextView中顯示圖片String html = "<img src='" + R.drawable.circle + "'/>";ImageGetter imgGetter = new ImageGetter() {@Overridepublic Drawable getDrawable(String source) {// TODO Auto-generated method stubint id = Integer.parseInt(source);Drawable d = getResources().getDrawable(id);d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());return d;}};CharSequence charSequence = Html.fromHtml(html, imgGetter, null);textView1.setText(charSequence);textView1.append("您好 ");</span>
注意下面這句話:String html = "<img src='" + R.drawable.circle + "'/>"; img src = 后面除了"之外還有個'號。如果去掉這兩個'號就變成了String html = "<img src=" + R.drawable.circle +"/>"; 是會報錯的,因為src直接等于了一個數字,是解析不了的。
方法三: 用ImageSpan和SpannableString,代碼如下:
<span style="margin: 0px; padding: 0px; border: 0px; font-size: 18px; font-family: 'Comic Sans MS'; background: transparent;">//第2種方法在TextView中顯示圖片Bitmap b = BitmapFactory.decodeResource(getResources(), R.drawable.hanguo);ImageSpan imgSpan = new ImageSpan(this, b);SpannableString spanString = new SpannableString("icon");spanString.setSpan(imgSpan, 0, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);textView2.setText(spanString);textView2.append("中新網4月27日電 據央視報道,韓國國務總理鄭烘原于當地時間27日上午召開發布會,稱自己應對韓國“歲月號”沉船事件負責,宣布辭職,并希望家屬能原諒及理解他的決定。");</span>
這種方法是最直觀的,通過Bitmap或Drawable對象得到ImageSpan對象,再新建SpannableString對象,設置span的內容就ok了。其實SpannableString很強大,如在EditText里將部分文本高亮、下劃線、斜體、插入表情都可以用它,詳見鏈接:http://gundumw100.iteye.com/blog/904107??
http://blog.csdn.net/rockcoding/article/details/7231756
下為效果圖,上下兩幅圖分別對應第二種和第三種方法:
總結
以上是生活随笔為你收集整理的Android TextView里直接显示图片的三种方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TextView图文混排,显示添加的图片
- 下一篇: Android ViewFlipper滑