編輯:關於android開發
我們通常在TextView文本中設置文字。可是如何設置圖文混排呢?
我就在這裡寫一個例子 。我們需要用到一點簡單的HTML知識
在TextView中預訂了一些類似HTML的標簽,通過標簽可以使TextView控件顯示不同顏色,大小,字體的文字
:設置顏色和字體
:設置大號
:設置小號
:斜體、粗體
:鏈接地址
:插入圖片
在drawable中存入我們的圖片。
然後我們在布局文件中添加一個TextView控件
<a><linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"><font><big><small> <textview android:id="@+id/tv_text" android:layout_width="wrap_content" android:layout_height="wrap_content"> </textview></small></big></font></linearlayout></a>在MainActivity.clss文件中
寫一行HTML形式的代碼,並用一個字符串接收它
String html="草莓";這行代碼是什麼意思呢?大家也看了上面的HTML簡單的標簽。是字體,所以和之間的是文字,是圖片,src是圖片的名稱
然後我們要解釋這行HTML代碼,就用到了這個方法
Html.fromHtml(String source, ImageGetter imageGetter, TagHandler tagHandler)其中source是字符串形式的 也就是我們需要解釋的HTML代碼。ImageGetter就是圖片的資源,TagHandler就標簽在這裡設置為null就行。
那麼ImageGetter該怎麼寫呢?我們可以new 一個ImageGetter對象 會發現裡面有一個方法
public Drawable getDrawable(String source) { }我們可以使用輸出日志信息看看這個方法裡面傳遞的source是什麼
發現了嗎?就是我們Html代碼裡面的 內容
由於返回的是Drawable類型的資源我們首先new 一個Drawable對象,然後通過getSource()的方法獲取圖片資源
最後一定要通過setBounds()方法設置一下圖片的大小。否則是不會顯示的哦
if(source.equals("http://blog.csdn.net/su20145104009/article/details/‘strawberry’")){ Drawable draw=getResources().getDrawable(R.drawable.http://blog.csdn.net/su20145104009/article/details/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="草莓"; CharSequence text=Html.fromHtml(html, new ImageGetter() { public Drawable getDrawable(String source) { //根據圖片資源ID獲取圖片 Log.d("source", source); if(source.equals("http://blog.csdn.net/su20145104009/article/details/‘strawberry’")){ Drawable draw=getResources().getDrawable(R.drawable.http://blog.csdn.net/su20145104009/article/details/strawberry); draw.setBounds(0, 0, draw.getIntrinsicWidth(), draw.getIntrinsicHeight()); return draw; } return null; } }, null); tv_text.setText(text); } }
Android中使用Notification實現進度通知欄(示例三),notification進度條我們在使用APP的過程中,軟件會偶爾提示我們進行版本更新,我們點擊確認
android:Intent匹配action,category和data原則,androidintent1.當你在androidmanifest裡面定義了一個或多個act
Android Developer:Memory Monitor演示 這個演示展示了在Android Studio中Memory Monitor工具基本的用法和流程。M
Android開發學習之路-EventBus使用,android-eventbusEventBus是一個通過發布、訂閱事件實現組件間消息傳遞的工具。 它存在的目的,就是為