android中textview是
㈠ Android 下設置TextView和EditText的區別和聯系分別是什麼
1.TextView控制項是文本表示控制項,主要功能是向用戶展示文本的內容,它是不可編輯的;EditText控制項是編輯文本控制項,主要功能是讓用戶輸入文本的內容,它是可以編輯的。每一個控制項都有著與之相應的屬性,通過選擇不同的屬性,給予其值,能夠實現不同的效果。
2.EditText設置游標顏色
android:textCursorDrawable="@null"
3.EditText設置游標位置問題
EditText中有一些預置文本的時候,想把游標調到最前面,一開始是使用的setSelection(0),結果發現在三星P1000上面有問題。經過研究發現需要先調用EditText.requestFocus(),再調用setSelection(0)。否則的話,在2.x的機器上有問題,但3.x上面是好著的。
4.EditText橫屏時,彈出軟體盤時不進行全屏
在使用EditText進行文本輸入時,若不進行特殊的設置,使用Android自帶的軟鍵盤,該軟鍵盤會佔用整個界面,那麼,如何讓鍵盤只佔用屏幕的一部分呢?
5.Android EditeText下實現相應的游標處理~
<EditText
android:id="@+id/text"
android:textColorHighlight="@color/editText_title_background" //設置選中EditText的選中文字顏色
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="end"
/>
edit = (EditText)findViewById(R.id.text);
edit.setSelectAllOnFocus(true);
edit.setText(Path);
edit.setBackgroundColor(Color.RED);
android:textColorHint="@color/editText_title_background"
6.Android系統的String.xml文件中的空格的使用
<string name="websave_type">類\u0020\u0020\u0020\u0020型:</string> --->代表著四個空格
<string name="websave_directory">目\u0020\u0020\u0020\u0020錄:</string> ----->代表著四個空格
㈡ Android TextView使用及性能優化
TextView 是Android中最常用的控制項,在這里記錄下TextView 的用法;
在Android中可以使用系統自帶的4種字體:
在XML中使用 android:typeface="normal" 進行設置
將字體文件放到main/assets/fonts目錄下,使用Asset讀取字體後進行設置
使用 android:drawableLeft="@mipmap/ic_launcher" 可以設置一張圖片顯示在文字的上下左右,減少布局層級
使用Span能夠在一段TextView中設置不同顏色的字體,鏈接,圖片等內容
使用ClickableSpan 能夠設置一段文字的點擊事件
創建自己的MyClickableSpan:
之後使用SpannableStringBuilder來創建字元串,並使用setSpan來為字元串的一部分設置Span對象
其中setSpan()方法的最後一個參數標識有以下常量,這些常量標識著在 對SpannableStringBuilder進行insert時 添加的字元適用的規則:
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
Spanned.SPAN_EXCLUSIVE_INCLUSIVE
Spanned.SPAN_INCLUSIVE_EXCLUSIVE
Spanned.SPAN_INCLUSIVE_INCLUSIVE
前一個 EXCLUSIVE / INCLUSIVE 標識著在設置了Span的一段字元之前(緊挨著)插入字元時,被不被包含到Span范圍中, EXCLUSIVE 表示包含, INCLUSIVE 表示不包含;
第二個 EXCLUSIVE / INCLUSIVE 同理表示插入這段字元之後的效果;
ImageSpan用於在TextView中插入圖片,可以用來實現圖文混排
使用方法:
這樣實現的效果是文字與圖片底部進行對齊,如果需要圖片中線與文字中線對其,需要自己重寫ImageSpan
Android 中的TextView中存在著很多EditText中的特性,在setText()方法中會涉及到很多Span相關的操作,比如設置TextWatcher,重新構造Spannable等操作,在我們僅僅顯示靜態文本的時候這些操作都是沒有必要的(通過使用普通的TextView進行Debug來驗證普通的TextView的確是Span的);
在大量顯示靜態文本的時候就可以通過StaticLayout來計算出TextView的布局信息,這項工作可以放到非UI線程來進行,能夠減少在setText()的時候UI線程的耗時,達到優化TextView性能的目的;
StaticLayout是TextView中用於顯示多行靜態文本的Layout,也是能夠支持SpannableString的,只是不能在Span變化之後重新Layout,所以在大部分場景下已經適用;
通過這個自定義的View來顯示Text,在onDraw()的時候直接使用layout來進行繪制,而設置需要顯示的文本則直接使用setLayout()來實現
使用下面給出的參考鏈接中的測試Demo在 ZTE A2017 Android7.1.1 高通820設備上,普通TextView在ListView中連續滾動的幀數是55幀,使用StaticLayout的結果為60幀
可以作為在APP使用CPU資源較多的情況下的優化手段
參考鏈接: TextView預渲染研究
在Android中,TextView的測量消耗了大量的時間,Android P中提供了PrecomputedText能夠將測量這個過程放到後台來執行,減輕對於UI線程的卡頓;
非Android P時,使用AppCompatTextView控制項,使用setTextFeature()方法來將文本的measure過程放到其他線程來執行,而不是直接將text應用於TextView;
在調用了這個方法之後如果對TextView進行邊距,文字大小等的設置都將會報錯;
Prefetch Text Layout in RecyclerView
PrecomputedTextCompat
在ListView中僅替換設置Text的方法時未測試出性能與普通方法有什麼優勢,猜測是ListView沒有在getView和顯示之間預留時間,
測試項目地址:
https://github.com/GavynZhang/PrecomuptedTextViewTest
㈢ android如何實現textview水平垂直居中
1、方法:設置textview的屬性android:layout_gravity="center"
2、補充:
(1)android:layout_gravity:View組件相對於Container的對齊方式。center表示將對象橫縱居中,不改變其大小。
(2)屬性可選的值還有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、fill、clip_vertical。
3、android
(1)Android是一種基於Linux的自由及開放源代碼的操謹慧作系統,主要使用於祥粗答移動設備,如智能手機和平板電腦,由Google公司和開放手機聯盟領導及開發。尚未有統一中文名稱,中國大陸地區較多人使用「安卓」或「安致」。Android操凳猜作系統最初由Andy Rubin開發,主要支持手機。2005年8月由Google收購注資。
(2)2007年11月,Google與84家硬體製造商、軟體開發商及電信營運商組建開放手機聯盟共同研發改良Android系統。隨後Google以Apache開源許可證的授權方式,發布了Android的源代碼。第一部Android智能手機發布於2008年10月。Android逐漸擴展到平板電腦及其他領域上,如電視、數碼相機、游戲機等。2011年第一季度,Android在全球的市場份額首次超過塞班系統,躍居全球第一。
4、textview:textView是用來顯示字元串的組件,在手機上就是顯示一塊文本的區域。
㈣ 在 android 應用中 textview 和 editview 組件有何異同
TextView(文本框)是Android系統中最常見的控制項之一,使用TextView可生成一段文本文字,合理使用TextView的屬性還能使文字變得有姿有色。
TextView控制項可以通過XML文件設置全部屬性,也可以通過java代碼設置屬性。
java代碼:
//獲得TextView控制項
TextView myText = (TextView) findViewById(R.id.myText);
//調用set方法設置屬性
myText.setTextColor(Color.BLUE);//設置文件的顏色為藍色
myText.setTextSize(25);//設置文本的字體大小為25dp
XML代碼:
<TextView
android:id="@+id/myText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello_world"
android:textColor="#00f"
android:textSize="20dp"/>
EditView是Android系統中的編輯框,可以理解為可編輯的TextView,用法和屬性都和TextView相似。
java代碼:
EditText myEdit = (EditText)findViewById(R.id.myEdit);
myEdit.setHint("請輸入文字");
myEdit.setCursorVisible(true);
myEdit.setTextColor(Color.BLUE);
XML代碼:
<EditText
android:id="@+id/myEdit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint=""
/>
㈤ android中textview顯示文字比如: 標題:XXXX 後面的XXXX怎麼獲取
TextView是最常用的組件之一用於顯示文本
像這種需求通常是兩個TextView組成的解決方案
用兩個TextView 一個作為標題,一個作為動態內容
還是用一個TexeView 直接getText().toString() 得到文本再調用String的api split(":") 拆分,即通過:進行拆分
通常在android中都是用兩個TextVew來處理的,前面一個TextVew作為標題,是固定不變的,後面一個TextVew作為變數,動態顯示內容
獲取textView文本的api :
String txt = textView.getText().toString();