国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Android應(yīng)用開(kāi)發(fā)(6)TextView進(jìn)階用法

這篇具有很好參考價(jià)值的文章主要介紹了Android應(yīng)用開(kāi)發(fā)(6)TextView進(jìn)階用法。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

?Android應(yīng)用開(kāi)發(fā)學(xué)習(xí)筆記——目錄索引

上一章Android應(yīng)用開(kāi)發(fā)(5)文本視圖(TextView)介紹了文本視圖(TextView)設(shè)置文本內(nèi)容、設(shè)置文本大小、設(shè)置文本顯示顏色。

TextView是最基礎(chǔ)的文本顯示控件,常用的基本屬性和設(shè)置方法有:

XML中的屬性 TextView類(lèi)的設(shè)置方法 說(shuō)明
android:text setText 設(shè)置文本內(nèi)容
android:textColor setTextColor 設(shè)置文本顏色
android:textSize setTextSize 設(shè)置文本大小
android:gravity setGravity 設(shè)置文本的對(duì)齊方式

本章介紹TextView的一些有趣用法:響應(yīng)點(diǎn)擊、省略顯示,跑馬燈滾動(dòng)顯示、多行垂直滾動(dòng)顯示

本章用到的TextView屬性與方法的介紹:

XML中的屬性 TextView類(lèi)的設(shè)置方法 說(shuō)明
android:textAppearance setTextAppearance 設(shè)置文本風(fēng)格
android:focusable setFocusable 設(shè)置是否獲得焦點(diǎn)
android:focusableInTouchMode setFocusableInTouchMode 設(shè)置在觸摸是是否獲得焦點(diǎn)
android:singleLine setSingleLine 設(shè)置文本內(nèi)容是否為單行
android:lines setLines 設(shè)置文本行數(shù)
android:maxLines setMaxLines 設(shè)置文本最大行數(shù)
android:ellipsize setEllipsize 設(shè)置文本內(nèi)容超出范圍后的省略方式,取值下面詳細(xì)介紹
android:scrollbars - 設(shè)置滾動(dòng)條的方向,取值vertical/horizontal,如果不指定將不顯示滾動(dòng)條
- setMovementMethod 設(shè)置文本移動(dòng)的方式,可設(shè)置ScrollingMovementMethod,如果不設(shè)置文本無(wú)法拉動(dòng)

省略方式ellipsize取值介紹:

XML中的屬性 TextUtils.TruncateAt類(lèi)中取值 說(shuō)明
android:ellipsize="start" START 省略號(hào)在開(kāi)頭
android:ellipsize="middle" MIDDLE 省略號(hào)在中間
android:ellipsize="end" END 省略號(hào)在末尾
android:ellipsize="marquee" MARQUEE 跑馬燈

一、TextView響應(yīng)點(diǎn)擊

TextView繼承View,有setOnClickListener()方法,所以可以通過(guò)實(shí)現(xiàn)onClick()方法來(lái)響應(yīng)用戶(hù)點(diǎn)擊的功能。

具體代碼如下:


public class MainActivity extends AppCompatActivity {
    private final static String TAG = "lzl-test";

    private TextView mTextViewSetOnClickListener;
    private Boolean isRedColor = false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        /* 測(cè)試TextView點(diǎn)擊效果 */
        mTextViewSetOnClickListener = (TextView) findViewById(R.id.textViewSetOnClickListener);
        mTextViewSetOnClickListener.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (v.getId() == R.id.textViewSetOnClickListener) {
                    isRedColor = !isRedColor;
                    if (isRedColor) {
                        mTextViewSetOnClickListener.setTextColor(Color.RED);
                    } else {
                        mTextViewSetOnClickListener.setTextColor(Color.BLUE);
                    }
                }
            }
        });
    }
}

二、省略顯示

當(dāng)一行內(nèi)容太多,可以在XML中設(shè)置android:ellipsize省略顯示


//省略文本開(kāi)始部分,省略號(hào)在開(kāi)頭
android:ellipsize="start"
//省略文本中間部分,省略號(hào)在中間
android:ellipsize="middle"
//省略文本結(jié)尾部分,省略號(hào)在尾部
android:ellipsize="end"

或者在java代碼中調(diào)用文本視圖的setTextColor()方法設(shè)置


public class MainActivity extends AppCompatActivity {
    private final static String TAG = "lzl-test";

    private TextView mTextViewEllipsize;
    private int mCount = 0;

    private TextView mTextViewSetOnClickListener;
    private int onClickCount = 0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        /* 測(cè)試TextView省略顯示,點(diǎn)擊改變省略方式 */
        mTextViewEllipsize = (TextView) findViewById(R.id.textViewEllipsize);
        mTextViewEllipsize.setSingleLine(true);
        mTextViewEllipsize.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (v.getId() == R.id.textViewEllipsize) {
                    mCount++;
                    if (mCount >= 4)
                        mCount = 1;
                    switch (mCount) {
                        case 1:
                            mTextViewEllipsize.setEllipsize(TextUtils.TruncateAt.START);
                            mTextViewEllipsize.setTextColor(Color.RED);
                            break;
                        case 2:
                            mTextViewEllipsize.setEllipsize(TextUtils.TruncateAt.MIDDLE);
                            mTextViewEllipsize.setTextColor(Color.GREEN);
                            break;
                        case 3:
                            mTextViewEllipsize.setEllipsize(TextUtils.TruncateAt.END);
                            mTextViewEllipsize.setTextColor(Color.BLUE);
                            break;
                        default:
                            break;
                    }
                }
            }
        });
    }
}

三、跑馬燈滾動(dòng)顯示

當(dāng)一行內(nèi)容太多,導(dǎo)致無(wú)法全部顯示,也不想分行顯示,可以讓文本從左向右已跑馬燈方式滾動(dòng)顯示。

Layout.xml文件中配置

    <TextView
        android:id="@+id/textViewMarquee"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:singleLine="true"
        android:ellipsize="marquee"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:text="來(lái)自中央氣象臺(tái)的最新預(yù)報(bào),預(yù)示著“杜蘇芮”的強(qiáng)大“威力”——7月29日至8月1日,北京、天津、河北、山東西部、河南北部、山西東部部分地區(qū)將有大暴雨,北京西部山前和南部、河北中南部等地局地有特大暴雨。氣象專(zhuān)家特別提醒,本輪強(qiáng)降雨極端性強(qiáng),致災(zāi)風(fēng)險(xiǎn)高。"
        android:textSize="18sp"

Java 代碼中設(shè)置


public class MainActivity extends AppCompatActivity {
    private final static String TAG = "lzl-test";

    private TextView mTextViewMarquee;
    private boolean isPaused = false;

    private TextView mTextViewSetOnClickListener;
    private int onClickCount = 0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        /* 測(cè)試TextView跑馬燈滾動(dòng)效果 */
        mTextViewMarquee = (TextView) findViewById(R.id.textViewMarquee);
        mTextViewMarquee.setTextColor(Color.RED);
        mTextViewMarquee.setEllipsize(TextUtils.TruncateAt.MARQUEE);
        mTextViewMarquee.requestFocus(); // 強(qiáng)制獲得焦點(diǎn),讓跑馬燈滾起來(lái)
        mTextViewMarquee.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (v.getId() == R.id.textViewMarquee) {
                    isPaused = !isPaused;
                    if (isPaused) {
                        mTextViewMarquee.setFocusable(false); // 不允許獲得焦點(diǎn)
                        mTextViewMarquee.setFocusableInTouchMode(false); // 不允許在觸摸時(shí)獲得焦點(diǎn)
                    } else {
                        mTextViewMarquee.setFocusable(true); // 允許獲得焦點(diǎn)
                        mTextViewMarquee.setFocusableInTouchMode(true); // 允許在觸摸時(shí)獲得焦點(diǎn)
                        mTextViewMarquee.requestFocus(); // 強(qiáng)制獲得焦點(diǎn),讓跑馬燈滾起來(lái)
                    }
                }
            }
        });
    }
}

四、多行垂直滾動(dòng)顯示

當(dāng)行數(shù)固定,一直新增文本更多文本,新的文本加入到窗口尾部,窗口可以垂直滾動(dòng)顯示。

Layout.xml文件中配置


    <TextView
        android:id="@+id/textViewScrollable"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:lines="8"
        android:maxLines="10"
        android:text=""
        android:textSize="18sp"
        android:gravity="left|bottom"
        android:scrollbars="vertical"

Java 代碼中設(shè)置

public class MainActivity extends AppCompatActivity implements View.OnClickListener, View.OnLongClickListener {
    private final static String TAG = "lzl-test";

    private TextView mTextViewScrollable;
    private int mAddTextCount = 0;

    private String[] mStrings = {
            "黃藥師:能不能請(qǐng)你喝碗酒?",
            "盲劍客:我今天只想喝水。",
            "黃藥師:我以前好象見(jiàn)過(guò)你?",
            "盲劍客:何止見(jiàn)過(guò),你曾經(jīng)是我最好的朋友,但是現(xiàn)在已經(jīng)不是啦。你來(lái)這兒干什么?",
            "黃藥師:前不久,我遇到一個(gè)人,她送給我一壇酒,她說(shuō)叫“醉生夢(mèng)死”,喝了之后,不管以前干過(guò)什么也會(huì)全忘了。我很奇怪,為什么會(huì)有這樣的酒,我喝了之后發(fā)覺(jué)真的很有效,不知你有沒(méi)有興趣試試?",
            "盲劍客:你知道喝酒跟喝水的分別嗎?酒,越喝越暖,水會(huì)越喝越寒。",
            "黃藥師:我們還會(huì)再見(jiàn)嗎?",
            "盲劍客:不會(huì)!",
            "盲劍客(獨(dú)白):我曾經(jīng)發(fā)過(guò)誓,如果再讓我碰到這個(gè)人,我一定會(huì)殺了他。但是我沒(méi)有這樣做, 因?yàn)槲乙?jiàn)他的時(shí)候,眼睛已經(jīng)看不見(jiàn)東西了。",
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        /* 測(cè)試TextView垂直滾動(dòng)顯示效果,點(diǎn)擊添加文本,長(zhǎng)按刪除 */
        mTextViewScrollable = (TextView) findViewById(R.id.textViewScrollable);
        mTextViewScrollable.setLines(8);
        mTextViewScrollable.setMaxLines(10);
        mTextViewScrollable.setBackgroundColor(Color.GRAY);
        // 設(shè)置內(nèi)部文字的對(duì)齊方式
        mTextViewScrollable.setGravity(Gravity.LEFT | Gravity.BOTTOM);
        // 設(shè)置內(nèi)部文本的移動(dòng)方式為滾動(dòng)形式
        mTextViewScrollable.setMovementMethod(new ScrollingMovementMethod());
        mTextViewScrollable.setOnClickListener(this);
        mTextViewScrollable.setOnLongClickListener(this);
    }

    @Override
    public void onClick(View v) {
        if (v.getId() == R.id.textViewScrollable ) {
            Log.d(TAG, "mStrings.length:" + mStrings.length);
            String string = String.format("%s\n%s %s", mTextViewScrollable.getText().toString(), getNowTimeMs(), mStrings[mAddTextCount]);
            mTextViewScrollable.setText(string);
            mAddTextCount++;
            if (mAddTextCount >= mStrings.length) {
                mAddTextCount = 0;
            }
        }
    }

    @Override
    public boolean onLongClick(View v) {
        if (v.getId() == R.id.textViewScrollable) {
            mTextViewScrollable.setText("");
        }
        return true;
    }

    private String getNowTimeMs() {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm:ss:SSS");
        return simpleDateFormat.format(new Date());
    }
}

java 代碼使用R.drawable.


TextView textView = (TextView) findViewById(R.id.textView);
textView.setBackgroundResource(R.drawable.ic_launcher_background);

四、測(cè)試程序

?完整源碼

百度網(wǎng)盤(pán)鏈接:百度網(wǎng)盤(pán) 請(qǐng)輸入提取碼 提取碼:test

TextViewTest目錄textviewtest2 module

Android應(yīng)用開(kāi)發(fā)(6)TextView進(jìn)階用法,Android應(yīng)用開(kāi)發(fā)學(xué)習(xí)筆記,android,android studio

點(diǎn)此查看Android應(yīng)用開(kāi)發(fā)學(xué)習(xí)筆記的完整目錄文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-633196.html

到了這里,關(guān)于Android應(yīng)用開(kāi)發(fā)(6)TextView進(jìn)階用法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 5G到來(lái)未來(lái)五年,做純應(yīng)用的Android開(kāi)發(fā)者如何學(xué)習(xí)通過(guò)音視頻破局?附《578頁(yè)NDK七大模塊學(xué)習(xí)寶典》(1)

    5G到來(lái)未來(lái)五年,做純應(yīng)用的Android開(kāi)發(fā)者如何學(xué)習(xí)通過(guò)音視頻破局?附《578頁(yè)NDK七大模塊學(xué)習(xí)寶典》(1)

    “只懂應(yīng)用層,目前越來(lái)越多的企業(yè)要求音視頻技術(shù),我該怎么辦?” “到底該不該學(xué)習(xí)音視頻,怎么抉擇?\\\" “想從事音視頻開(kāi)發(fā),該怎么入門(mén)?如何進(jìn)階 ?” 如果你有這樣的問(wèn)題,從側(cè)面反映了你是一個(gè)積極向上,想不斷努力來(lái)提升自己的人。 先從一個(gè)簡(jiǎn)單的問(wèn)題聊起

    2024年04月23日
    瀏覽(40)
  • 二蛋贈(zèng)書(shū)四期:《Go編程進(jìn)階實(shí)戰(zhàn):開(kāi)發(fā)命令行應(yīng)用、HTTP應(yīng)用和gRPC應(yīng)用》

    二蛋贈(zèng)書(shū)四期:《Go編程進(jìn)階實(shí)戰(zhàn):開(kāi)發(fā)命令行應(yīng)用、HTTP應(yīng)用和gRPC應(yīng)用》

    大家好!我是二蛋,一個(gè)熱愛(ài)技術(shù)、樂(lè)于分享的工程師。在過(guò)去的幾年里,我一直通過(guò)各種渠道與大家分享技術(shù)知識(shí)和經(jīng)驗(yàn)。我深知,每一位技術(shù)人員都對(duì)自己的技能提升和職業(yè)發(fā)展有著熱切的期待。因此,我非常感激大家一直以來(lái)對(duì)我的關(guān)注和支持。 為了回饋大家的厚愛(ài),

    2024年02月08日
    瀏覽(22)
  • 貓頭虎博主贈(zèng)書(shū)三期:《Go編程進(jìn)階實(shí)戰(zhàn): 開(kāi)發(fā)命令行應(yīng)用、HTTP應(yīng)用和gRPC應(yīng)用》

    貓頭虎博主贈(zèng)書(shū)三期:《Go編程進(jìn)階實(shí)戰(zhàn): 開(kāi)發(fā)命令行應(yīng)用、HTTP應(yīng)用和gRPC應(yīng)用》

    ???? 博主貓頭虎(????)帶您 Go to New World??? ?? 博客首頁(yè) ——????貓頭虎的博客?? ?? 《面試題大全專(zhuān)欄》 ?? 文章圖文并茂??生動(dòng)形象??簡(jiǎn)單易學(xué)!歡迎大家來(lái)踩踩~?? ?? 《IDEA開(kāi)發(fā)秘籍專(zhuān)欄》 ?? 學(xué)會(huì)IDEA常用操作,工作效率翻倍~?? ?? 《100天精通Golang(基礎(chǔ)

    2024年02月09日
    瀏覽(24)
  • 【前端進(jìn)階】跨平臺(tái)開(kāi)發(fā)與原生應(yīng)用:技術(shù)融合的未來(lái)

    在移動(dòng)設(shè)備的快速普及和大規(guī)模應(yīng)用的背景下,開(kāi)發(fā)應(yīng)用程序的跨平臺(tái)能力已成為前端開(kāi)發(fā)人員不可或缺的技能??缙脚_(tái)開(kāi)發(fā)允許我們使用統(tǒng)一的代碼庫(kù)構(gòu)建應(yīng)用程序,同時(shí)在多個(gè)平臺(tái)上實(shí)現(xiàn)原生應(yīng)用的性能和體驗(yàn)。在本文中,我們將探討跨平臺(tái)開(kāi)發(fā)的概念、優(yōu)勢(shì)以及目前流

    2024年02月11日
    瀏覽(93)
  • Android應(yīng)用開(kāi)發(fā)(1)Android Studio開(kāi)發(fā)環(huán)境搭建

    Android應(yīng)用開(kāi)發(fā)(1)Android Studio開(kāi)發(fā)環(huán)境搭建

    Android應(yīng)用開(kāi)發(fā)學(xué)習(xí)筆記——目錄索引 本章介紹搭建Android Studio應(yīng)用開(kāi)發(fā)環(huán)境,創(chuàng)建并編譯App工程,運(yùn)行和調(diào)試App。 谷歌開(kāi)發(fā)者網(wǎng)站可直接下載AndroidStudio,下載鏈接:https://developer.android.com/studio 點(diǎn)擊【Download Android Studio Electric Eel】 勾選【I have read and agree with the above terms and

    2024年02月07日
    瀏覽(28)
  • 跨平臺(tái)應(yīng)用開(kāi)發(fā)進(jìn)階(三十二) :AK/SK鑒權(quán)原理簡(jiǎn)介

    跨平臺(tái)應(yīng)用開(kāi)發(fā)進(jìn)階(三十二) :AK/SK鑒權(quán)原理簡(jiǎn)介

    ak/sk 是一種身份認(rèn)證方式,常用于系統(tǒng)間接口調(diào)用時(shí)的身份驗(yàn)證,其中 ak 為 Access Key ID , sk 為 Secret Access Key ??蛻?hù)端和服務(wù)端兩者會(huì)協(xié)商保存一份相同的 sk ,其中 sk 必須保密。 AK : Access Key Id ,?于標(biāo)??戶(hù); SK : Secret Access Key ,是?戶(hù)?于加密認(rèn)證字符串和?來(lái)驗(yàn)證認(rèn)證

    2024年02月13日
    瀏覽(21)
  • uniapp微信小程序開(kāi)發(fā)踩坑日記:onShow的應(yīng)用場(chǎng)景及用法

    uniapp微信小程序開(kāi)發(fā)踩坑日記:onShow的應(yīng)用場(chǎng)景及用法

    由于微信小程序是單頁(yè)應(yīng)用程序,所以用戶(hù)在打開(kāi)小程序后,只有第一次進(jìn)入頁(yè)面時(shí)會(huì)加載頁(yè)面,之后再通過(guò)導(dǎo)航欄切換到相同的頁(yè)面并不會(huì)導(dǎo)致頁(yè)面重新加載 但是在某些場(chǎng)景下,我們希望每次用戶(hù)一回到某個(gè)頁(yè)面,就執(zhí)行相應(yīng)的函數(shù),但因?yàn)閷?dǎo)航欄切換頁(yè)面并不會(huì)導(dǎo)致頁(yè)面

    2024年02月21日
    瀏覽(31)
  • Android應(yīng)用開(kāi)發(fā)(7)按鍵(Button)

    Android應(yīng)用開(kāi)發(fā)(7)按鍵(Button)

    Android應(yīng)用開(kāi)發(fā)學(xué)習(xí)筆記——目錄索引 本章介紹按鈕(Button)控件的常見(jiàn)用法,結(jié)合前面Android應(yīng)用開(kāi)發(fā)(5)文本顯示(TextView)介紹按鈕(Button)監(jiān)聽(tīng)點(diǎn)擊和長(zhǎng)按事件,禁用和啟用等。 參考google官網(wǎng):https://developer.android.com/reference/android/widget/Button 按鈕控件Button由TextView派生

    2024年02月05日
    瀏覽(31)
  • Android應(yīng)用開(kāi)發(fā)(4)視圖布局基本屬性

    Android應(yīng)用開(kāi)發(fā)(4)視圖布局基本屬性

    Android應(yīng)用開(kāi)發(fā)學(xué)習(xí)筆記——目錄索引 本章介紹視圖(View)的基本概念及其用法,包括:如何設(shè)置視圖的寬度和高度,如何設(shè)置視圖的外部間距和內(nèi)部間距,如何設(shè)置視圖的外部對(duì)齊方式和內(nèi)部對(duì)齊方式等。 在Android中,什么是視圖(View)?View是Android中所有控件的基類(lèi),不

    2024年02月03日
    瀏覽(21)
  • 移動(dòng)應(yīng)用開(kāi)發(fā)環(huán)境搭建Android Studio

    移動(dòng)應(yīng)用開(kāi)發(fā)環(huán)境搭建Android Studio

    記得提前開(kāi)啟電腦虛擬化支持,具體方法可自行百度 查看是否啟用虛擬化 JDK安裝與卸載 由于Andriod開(kāi)發(fā)使用的語(yǔ)言是javaKotlin,這里使用的是java語(yǔ)言所以需要先安裝java的開(kāi)發(fā)環(huán)境 所有開(kāi)發(fā) Android 應(yīng)用程序需要的工具都是開(kāi)源的,并且可以從互聯(lián)網(wǎng)上下載 Android Studio 是谷歌推

    2023年04月08日
    瀏覽(35)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包