TextView基本學(xué)習(xí)

TextView如何產(chǎn)生豐富的文本。

顯示文本


  1. <font>設(shè)置顏色和字體
  2. <big/> 設(shè)置大小號
  3. <small/> 設(shè)置小號
  4. <i/> <b/> 設(shè)置斜體,粗體
  5. <a/>鏈接地址
  6. <img/> 插入圖片
  • 使用實例

        String html = "<font color='red'>我愛android</font><br>";
        html += "<font color='blue'><big><i>新的測試</i></big></font><p>";
        html += "<big><a ;
        CharSequence mychr = Html.fromHtml(html);
        tv1.setText(Html.fromHtml(html));
        tv1.setMovementMethod(LinkMovementMethod.getInstance());  //點擊的時候產(chǎn)生超鏈接。

        String text = "我的url: http://www.sina.com\n";
        text += "我的email: 123436059@qq.com\n";
        text += "我的電話: 1868480621";
        tv2.setText(text);
        tv2.setMovementMethod(LinkMovementMethod.getInstance());
   注意2個方法,一個是html格式的使用。Html.fromHtml(html)。
   一個是產(chǎn)生超鏈接,必須要在textview里設(shè)置一個屬性 == android:autoLink="all" == 方能生效。  

顯示表情和文本


顯示圖片的要點:

  1. 利用反射得到資源名
  2. imageget的使用
  • 使用實例

   public int getResoureId(String name) {
        try {
            //根據(jù)資源id的變量名獲得Field對象,使用反射機(jī)制來實現(xiàn)
            Field field = R.drawable.class.getField(name);
            //取得并返回資源的id的字段(靜態(tài)變量)
            return Integer.parseInt(field.get(null).toString());
        } catch (Exception e) {
            e.printStackTrace();
        }
        return 0;
    } 
        //------------------------------------
        String html = "圖像1<img src='m10'/>圖像2<img src='m12'/>";
        html += "圖像3<img src='m13'/><p>圖像4<a ><img src='m10'/></a>";
        CharSequence text = Html.fromHtml(html, new Html.ImageGetter() {
            @Override
            public Drawable getDrawable(String source) {
                //獲得系統(tǒng)資源的信息。
                if (getResoureId(source) == 0) {
                    Log.d("taxi", "erro");
                    return null;
                }
                Drawable drawable = getResources().getDrawable(getResoureId(source));
                return drawable;
            }
        }, null);

        tvIcion.setText(text);
        tvIcion.setMovementMethod(LinkMovementMethod.getInstance());

關(guān)鍵是這2個方法的運(yùn)用。

textview跳轉(zhuǎn)activity(點擊局部跳轉(zhuǎn))


關(guān)鍵以下4點:

  1. SpannableString的使用
  2. SpannableString.setSpan
  3. ClickableSpan()
  4. setMovementMethod(LinkMovementMethod.getInstance())的使用
  • 使用實例


        SpannableString mystring1 = new SpannableString(text1);
        SpannableString mystring2 = new SpannableString(text2);

        mystring1.setSpan(new ClickableSpan() {
            @Override
            public void onClick(View widget) {
                startActivity(new Intent(context, TestA_Activity.class));
            }
        }, 0, text1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

        mystring2.setSpan(new ClickableSpan() {
            @Override
            public void onClick(View widget) {
                Log.d("taxi", "點擊了跳轉(zhuǎn)");
            }
        }, text2.indexOf("activity"), text2.indexOf("activity") + "activity".length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

        tv1.setText(mystring1);
        tv1.setMovementMethod(LinkMovementMethod.getInstance());

        tv2.setText(mystring2);
        tv2.setMovementMethod(LinkMovementMethod.getInstance());

點擊事件的獲取。

跑馬燈效果


  在看代碼前,先講解一下等下會碰到的屬性:

android:elipsize: 如果文本長度大于TextView的顯示長度,則隱藏那一部分,可賦值為:none(不隱藏)、start(隱藏開始)、middle(隱藏中間)、end(隱藏結(jié)束)、marquee(滾動效果)。
android:marqueRepeatLimit:設(shè)定需要重復(fù)動畫的次數(shù),傳遞一個int值,-1為無限循環(huán)。
android:focusable:是否允許獲得焦點,傳遞一個bool值。
android:focusableInTouchMode:是否在獲得焦點時對控件有聯(lián)系,傳遞一個bool值。

關(guān)鍵的就是這幾個屬性。
==tv_anim.setMovementMethod(LinkMovementMethod.getInstance());在代碼中如果設(shè)置了這個屬性,也會使跑馬燈效果失效。==

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ¥開啟¥ 【iAPP實現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 7,294評論 0 17
  • 組件所在包:android.widget 組件的屬性 android:id屬性是必須的嗎?請解釋一下該屬性的作用。...
    nancymi閱讀 1,747評論 1 20
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,502評論 19 139
  • 字符串資源里變量替換 Android開發(fā)中是拒絕硬編碼的,我們可能會把一些字符串放在xml中當(dāng)作資源使用,假設(shè)有如...
    醉馬當(dāng)前闖閱讀 13,889評論 2 44
  • Correctness AdapterViewChildren Summary: AdapterViews can...
    MarcusMa閱讀 9,039評論 0 6

友情鏈接更多精彩內(nèi)容