亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android中使用TextView實現(xiàn)圖文混排的方法

 更新時間:2016年02月15日 14:38:18   作者:susu的Dream  
向TextView或EditText中添加圖像比直接添加文本復(fù)雜一點點,需要用到<img>標(biāo)簽。接下來通過本文給大家介紹Android中使用TextView實現(xiàn)圖文混排的方法,希望對大家有所幫助

向TextView或EditText中添加圖像比直接添加文本復(fù)雜一點點,需要用到<img>標(biāo)簽。

<img>只有一個src屬性,該屬性原則上應(yīng)該指向一個圖像地址或可以找到某個圖像資源的唯一標(biāo)識。但要注意的是,系統(tǒng)并不會直接根據(jù)src屬性所指的值自動獲取和顯示圖像,這一切都需要我們?nèi)プ?。說白了,src屬性指的是什么只有開發(fā)者自己知道。開發(fā)者需要告訴系統(tǒng)src屬性到底指的是什么,然后系統(tǒng)才會知道怎么做。

解析src屬性值需要ImageGetter對象的getDrawable方法來完成。ImageGetter是一個接口。使用Html.fromHtml會使這一過程變得簡單。

public static Spanned fromHtml(String source,ImageGetter imageGetter, TagHandler tagHandler);

我們通常在TextView文本中設(shè)置文字。可是如何設(shè)置圖文混排呢?

我就在這里寫一個例子 。我們需要用到一點簡單的HTML知識

在TextView中預(yù)訂了一些類似HTML的標(biāo)簽,通過標(biāo)簽可以使TextView控件顯示不同顏色,大小,字體的文字

<font>:設(shè)置顏色和字體
<big>:設(shè)置大號
<small>:設(shè)置小號
<i>\<b>:斜體、粗體
<a>:鏈接地址
<img>:插入圖片

在drawable中存入我們的圖片。

然后我們在布局文件中添加一個TextView控件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" > 
<TextView 
android:id="@+id/tv_text" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" /> 
</LinearLayout> 

在MainActivity.clss文件中

寫一行HTML形式的代碼,并用一個字符串接收它

String html="<font>草莓</font><img src=‘strawberry'>"; 

這行代碼是什么意思呢?大家也看了上面的HTML簡單的標(biāo)簽。<font>是字體,所以<font>和</font>之間的是文字,<img>是圖片,src是圖片的名稱
然后我們要解釋這行HTML代碼,就用到了這個方法

Html.fromHtml(String source, ImageGetter imageGetter, TagHandler tagHandler) 

其中source是字符串形式的 也就是我們需要解釋的HTML代碼。ImageGetter就是圖片的資源,TagHandler就標(biāo)簽在這里設(shè)置為null就行。
那么ImageGetter該怎么寫呢?我們可以new 一個ImageGetter對象 會發(fā)現(xiàn)里面有一個方法

public Drawable getDrawable(String source) { 
} 

我們可以使用輸出日志信息看看這個方法里面?zhèn)鬟f的source是什么

發(fā)現(xiàn)了嗎?就是我們Html代碼里面的 內(nèi)容<img src='strawberry'>
由于返回的是Drawable類型的資源我們首先new 一個Drawable對象,然后通過getSource()的方法獲取圖片資源
最后一定要通過setBounds()方法設(shè)置一下圖片的大小。否則是不會顯示的哦

if(source.equals("‘strawberry'")){ 
Drawable draw=getResources().getDrawable(R.drawable.strawberry); 
draw.setBounds(0, 0, draw.getIntrinsicWidth(), draw.getIntrinsicHeight()); 
return draw; 
}

MainActivity.class的全部代碼如下:

package com.example.textview; 
import javax.xml.transform.Source; 
import android.os.Bundle; 
import android.app.Activity; 
import android.graphics.drawable.Drawable; 
import android.text.Html; 
import android.text.Html.ImageGetter; 
import android.util.Log; 
import android.view.Menu; 
import android.widget.TextView; 
public class MainActivity extends Activity { 
private TextView tv_text; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
tv_text=(TextView) findViewById(R.id.tv_text); 
String html="<font>草莓</font><img src=‘strawberry'>"; 
CharSequence text=Html.fromHtml(html, new ImageGetter() { 
public Drawable getDrawable(String source) { 
//根據(jù)圖片資源ID獲取圖片 
Log.d("source", source); 
if(source.equals("‘strawberry'")){ 
Drawable draw=getResources().getDrawable(R.drawable.strawberry); 
draw.setBounds(0, 0, draw.getIntrinsicWidth(), draw.getIntrinsicHeight()); 
return draw; 
} 
return null; 
} 
}, null); 
tv_text.setText(text); 
} 
}

以上所述是小編給大家介紹的Android中使用TextView實現(xiàn)圖文混排的方法,希望對大家有所幫助。

相關(guān)文章

  • Android 內(nèi)存溢出和內(nèi)存泄漏的問題

    Android 內(nèi)存溢出和內(nèi)存泄漏的問題

    這篇文章主要介紹了Android 內(nèi)存溢出和內(nèi)存泄漏的問題的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • Android開發(fā)雙向滑動選擇器范圍SeekBar實現(xiàn)

    Android開發(fā)雙向滑動選擇器范圍SeekBar實現(xiàn)

    這篇文章主要為大家介紹了Android開發(fā)雙向滑動范圍選擇器SeekBar實現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Android添加自定義下拉刷新布局阻尼滑動懸停彈動畫效果

    Android添加自定義下拉刷新布局阻尼滑動懸停彈動畫效果

    這篇文章主要為大家介紹了Android添加自定義下拉刷新布局阻尼滑動懸停彈動畫效果詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Android 手機(jī)無法連接mac解決辦法

    Android 手機(jī)無法連接mac解決辦法

    有沒有遇到這種情況的朋友,自己的小米2或其他Android手機(jī)無法連接mac?下面教給大家一個簡單的方法解決這個問題,只需在mac的終端輸入一行命令即可,需要的朋友可以參考下
    2016-12-12
  • popupwindow焦點問題解決方案

    popupwindow焦點問題解決方案

    在android 開發(fā)過程中,總會遇到一些問題,比如popupwindow焦點問題等等,我們該如何解決呢?需要的朋友可以了解下
    2012-11-11
  • 一文詳解如何在Flutter中使用導(dǎo)航Navigator

    一文詳解如何在Flutter中使用導(dǎo)航Navigator

    一個APP如果沒有頁面跳轉(zhuǎn)那么是沒有靈魂的,頁面跳轉(zhuǎn)的一個常用說法就是Navigator。那么在flutter中如何使用Navigator呢?本文就來和大家詳細(xì)聊聊
    2023-02-02
  • Android 在其他線程中更新UI線程的解決方法

    Android 在其他線程中更新UI線程的解決方法

    本篇文章是對Android中在其他線程中更新UI線程的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • Android中button的onClick事件幾種方法

    Android中button的onClick事件幾種方法

    這篇文章主要介紹了Android中button的onClick事件幾種方法的相關(guān)資料,這里提供三種方法,實現(xiàn)監(jiān)聽事件,需要的朋友可以參考下
    2017-09-09
  • APK包名修改 請問如何修改APK包名

    APK包名修改 請問如何修改APK包名

    今天,想在android手機(jī)上安裝兩個相同的應(yīng)用,本以為可以安裝不同版本的,試了幾次,均相互覆蓋了,于是,只能設(shè)法修改apk所對應(yīng)的包名(package name),需要了解的朋友可以參考下
    2012-12-12
  • Android中點擊事件的四種寫法詳解

    Android中點擊事件的四種寫法詳解

    本篇文章主要介紹了Android中點擊事件的四種寫法詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05

最新評論