導航:首頁 > 操作系統 > android折疊textview

android折疊textview

發布時間:2022-10-30 10:25:41

android 怎麼設置textview單行

xml中添加屬性:android:maxLines="1"
多說一點,如果一行不夠顯示完全所有內容,可以使用使用android:ellipsize=""指定省略的方式,自己慢慢研究吧

Ⅱ android 怎樣在程序中設置TextView中顯示的值

具體操作如下:

button

bt

=(button)findviewbyid(r.id.button1);

textview

tx=(textview)findviewbyid(r.id.textview1);

tx.settext(bt.gettext());

gettext()就是獲取按鈕上的文字,在textview中顯示出來。

(2)android折疊textview擴展閱讀:

向用戶顯示文本,並可選擇允許他們編輯文本。TextView是一個完整的文本編輯器,但是基類為不允許編輯;其子類EditText允許文本編輯。

允許用戶復制部分或全部內容,將其粘貼到別的地方,設置XML屬性Android:textisselectable :「真」 或設置相關方法 settextisselectable 為「真」。textisselectable flag 允許用戶在TextView選擇手勢,從而觸發系統內置的復制/粘貼控制項。

Ⅲ Android 的Textview控制項

對android不是很熟悉。
我的理解是:這個TextView是在XML裡面告訴android這是一個textview控制項。
然後android:text是告訴android這個textview上面顯示的內容的。這個textview就只有這么一個屬性,因此只能設置一次。如果是在代碼裡面修改的話,應該是隨便你怎麼改都沒有問題。

Ⅳ 如何在 Android 的 textview 里獲取行數

最近項目需求,需要獲取Textview的行數,通過行數與TextView的maxLines進行比較來確定是否顯示TextView下方的展開按鈕是否顯示,廢話少說直接上代碼,mTextView.getLineCount() ,似乎很美好,安卓有提供這個方法,但是總是返回0,這是為啥呢?官方注釋如下:
/**
* Return the number of lines of text, or 0 if the internal Layout has not
* been built.
*/
也就是說只有內部的Layout創建之後才會返回正確的行數,那怎麼保證layout已經構創建了呢?
最後我是這么解決的
mTextView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {

@Override
public void onGlobalLayout() {
// TODO Auto-generated method stub
Log.e(TAG, "行數"+mTextView.getLineCount());
mTextView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
if(mTextView.getLineCount()>0){
mTextView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
}

}
});
當TeXtView在繪制的時候就會回調這個方法,注意當我們得到了想要的值之後注意移除GlobalOnLayoutListener避免多餘的執行,而且我的項目需求是要後面通過改變textview的高度實現平滑展開的動畫。附上關鍵代碼
/**
* 折疊效果
*/

tempHight = mTextView.getLineHeight() * mTextView.getLineCount() - startHight; //計算要展開高度
tempHight = mTextView.getLineHeight() * maxLine - startHight;//為負值,收縮的高度

Animation animation = new Animation() {
//interpolatedTime 為當前動畫幀對應的相對時間,值總在0-1之間
protected void applyTransformation(float interpolatedTime, Transformation t) {
mTextView.setHeight((int) (startHight + tempHight * interpolatedTime));//原始長度+高度差*(從0到1的漸變)即表現為動畫效果

}
};
animation.setDuration(1000);
mTextView.startAnimation(animation);

Ⅳ android裡面的textview

append是字元串的方法 又不是控制項的方法
先get出text然後給字元串加一段
然後set回去
就是這樣 ,
順便宣傳下 我的安卓開發交流小群94511538

Ⅵ Android里的Textview類中有哪些方法

直接看TextView類的源碼,eclipse里按住ctrl,點擊TextView的類名,android studio里游標放在TextView類名上,按Ctrl+N打開TextView類,或者直接在源碼目錄里找到TextView類看源碼,路徑:

java">你的SDK目錄sourcesandroid-XXandroidwidgetTextView.java//XX是API版本,隨便一個都行

Ⅶ 怎麼實現TextView的展開與收縮

在Android TextView中有個內容過長加省略號的屬性,即ellipsize,用法如下:
在xml中:
android:ellipsize="end" 省略號在結尾
android:ellipsize="start" 省略號在開頭
android:ellipsize="middle" 省略號在中間
android:ellipsize="marquee" 跑馬燈
最好加一個TextView顯示行數的約束,例如:android:singleline="true"或者android:lines="2"
在java文件中:
tv.setEllipsize(TextUtils.TruncateAt.valueOf("END"));
tv.setEllipsize(TextUtils.TruncateAt.valueOf("START"));
tv.setEllipsize(TextUtils.TruncateAt.valueOf("MIDDLE"));
tv.setEllipsize(TextUtils.TruncateAt.valueOf("MARQUEE"));
最好加一個TextView顯示行數的約束,例如:tv.setSingleLine(true);
不僅對於textview有此屬性,對於editext也有,不過它不支持marquee。
文字展開和收縮
public class DemoActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); // 在xml文件中設置了android:singleline="true"
final TextView tv = (TextView)findViewById(R.id.task_2_title);
//tv.setMovementMethod(ScrollingMovementMethod.getInstance());
tv.setOnClickListener(new OnClickListener() {
Boolean flag = true;
@Override
public void onClick(View v) {
Log.i("tv.getLineCount()",tv.getHeight()+"");
if(flag){

flag = false;
tv.setEllipsize(null); // 展開
//tv.setSingleLine(flag);
}else{
flag = true;
tv.setEllipsize(TextUtils.TruncateAt.END); // 收縮
//tv.setSingleLine(flag);
}
}
});
}
}
其實,只是把樣式清空而已。就能完全展開了。有人可能要說,萬一我想初始幾行呢?放心,一樣可以。上代碼:在xml文件中設置了如下屬性:android:lines="4" //我初始化的4行 Activity那邊代碼一樣,只改一點 if(flag){
flag = false;
tv.setEllipsize(null); // 展開
tv.setSingleLine(flag);
}else{
flag = true;
tv.setEllipsize(TextUtils.TruncateAt.END); // 收縮
}
設置setSingleLine的目的是為了取消lines==「4」這個固定值。

Ⅷ 在android中怎樣設置textview的文本

TextView的屬性:
Android:autoLink設置是否當文本為URL鏈接/email/電話號碼/map時,文本顯示為可點擊的鏈接。可選值(none/web /email/phone/map/all)
android:autoText如果設置,將自動執行輸入值的拼寫糾正。此處無效果,在顯示輸入法並輸入的時候起作用。
android:bufferType指定getText()方式取得的文本類別。選項editable 類似於StringBuilder可追加字元,也就是說getText後可調用append方法設置文本內容。spannable 則可在給定的字元區域使用樣式,參見這里1、這里2。
android:capitalize設置英文字母大寫類型。此處無效果,需要彈出輸入法才能看得到,參見EditView此屬性說明。
android:cursorVisible設定游標為顯示/隱藏,默認顯示。
android:digits設置允許輸入哪些字元。如「1234567890.+-*/% ()」
android:drawableBottom在text的下方輸出一個drawable,如圖片。如果指定一個顏色的話會把text的背景設為該顏色,並且同時和background使用時覆蓋後者。
android:drawableLeft在text的左邊輸出一個drawable,如圖片。
android:drawablePadding設置text與drawable(圖片)的間隔,與drawableLeft、 drawableRight、drawableTop、drawableBottom一起使用,可設置為負數,單獨使用沒有效果。
android:drawableRight在text的右邊輸出一個drawable。
android:drawableTop在text的正上方輸出一個drawable。
android:editable設置是否可編輯。
android:editorExtras設置文本的額外的輸入數據。
android:ellipsize設置當文字過長時,該控制項該如何顯示。有如下值設置:」start」—?省略號顯示在開頭;」end」 ——省略號顯示在結尾;」middle」—-省略號顯示在中間;」marquee」 ——以跑馬燈的方式顯示(動畫橫向移動)
android:freezesText設置保存文本的內容以及游標的位置。
android:gravity設置文本位置,如設置成「center」,文本將居中顯示。
android:hintText為空時顯示的文字提示信息,可通過textColorHint設置提示信息的顏色。此屬性在 EditView中使用,但是這里也可以用。
android:imeOptions附加功能,設置右下角IME動作與編輯框相關的動作,如actionDone右下角將顯示一個「完成」,而不設置默認是一個回車符號。這個在EditView中再詳細說明,此處無用。
android:imeActionId設置IME動作ID。
android:imeActionLabel設置IME動作標簽。
android:includeFontPadding設置文本是否包含頂部和底部額外空白,默認為true。
android:inputMethod為文本指定輸入法,需要完全限定名(完整的包名)。例如:com.google.android.inputmethod.pinyin,但是這里報錯找不到。
android:inputType設置文本的類型,用於幫助輸入法顯示合適的鍵盤類型。在EditView中再詳細說明,這里無效果。
android:linksClickable設置鏈接是否點擊連接,即使設置了autoLink。
android:marqueeRepeatLimit在ellipsize指定marquee的情況下,設置重復滾動的次數,當設置為 marquee_forever時表示無限次。
android:ems設置TextView的寬度為N個字元的寬度。這里測試為一個漢字字元寬度
android:maxEms設置TextView的寬度為最長為N個字元的寬度。與ems同時使用時覆蓋ems選項。
android:minEms設置TextView的寬度為最短為N個字元的寬度。與ems同時使用時覆蓋ems選項。
android:maxLength限制顯示的文本長度,超出部分不顯示。
android:lines設置文本的行數,設置兩行就顯示兩行,即使第二行沒有數據。
android:maxLines設置文本的最大顯示行數,與width或者layout_width結合使用,超出部分自動換行,超出行數將不顯示。
android:minLines設置文本的最小行數,與lines類似。
android:lineSpacingExtra設置行間距。
android:lineSpacingMultiplier設置行間距的倍數。如」1.2」
android:numeric如果被設置,該TextView有一個數字輸入法。此處無用,設置後唯一效果是TextView有點擊效果,此屬性在EdtiView將詳細說明。
android:password以小點」.」顯示文本
android:phoneNumber設置為電話號碼的輸入方式。
android:privateImeOptions設置輸入法選項,此處無用,在EditText將進一步討論。
android:scrollHorizontally設置文本超出TextView的寬度的情況下,是否出現橫拉條。
android:selectAllOnFocus如果文本是可選擇的,讓他獲取焦點而不是將游標移動為文本的開始位置或者末尾位置。 TextView中設置後無效果。
android:shadowColor指定文本陰影的顏色,需要與shadowRadius一起使用。
android:shadowDx設置陰影橫向坐標開始位置。
android:shadowDy設置陰影縱向坐標開始位置。
android:shadowRadius設置陰影的半徑。設置為0.1就變成字體的顏色了,一般設置為3.0的效果比較好。
android:singleLine設置單行顯示。如果和layout_width一起使用,當文本不能全部顯示時,後面用「…」來表示。如android:text="test_ singleLine "
android:singleLine="true" android:layout_width="20dp"將只顯示「t…」。如果不設置singleLine或者設置為false,文本將自動換行
android:text設置顯示文本.
android:textAppearance設置文字外觀。如 「?android:attr/textAppearanceLargeInverse」這里引用的是系統自帶的一個外觀,?表示系統是否有這種外觀,否則使用默認的外觀。可設置的值如下:textAppearanceButton/textAppearanceInverse/textAppearanceLarge/textAppearanceLargeInverse/textAppearanceMedium/textAppearanceMediumInverse/textAppearanceSmall/textAppearanceSmallInverse
android:textColor設置文本顏色
android:textColorHighlight被選中文字的底色,默認為藍色
android:textColorHint設置提示信息文字的顏色,默認為灰色。與hint一起使用。
android:textColorLink文字鏈接的顏色.
android:textScaleX設置文字之間間隔,默認為1.0f。
android:textSize設置文字大小,推薦度量單位」sp」,如」15sp」
android:textStyle設置字形[bold(粗體) 0, italic(斜體) 1, bolditalic(又粗又斜) 2] 可以設置一個或多個,用「|」隔開
android:typeface設置文本字體,必須是以下常量值之一:normal 0, sans 1, serif 2, monospace(等寬字體) 3]
android:height設置文本區域的高度,支持度量單位:px(像素)/dp/sp/in/mm(毫米)
android:maxHeight設置文本區域的最大高度
android:minHeight設置文本區域的最小高度
android:width設置文本區域的寬度,支持度量單位:px(像素)/dp/sp/in/mm(毫米),與layout_width 的區別看這里。
android:maxWidth設置文本區域的最大寬度
android:minWidth設置文本區域的最小寬度

Ⅸ Android開發中,需要的時候就再多一個TextView,怎麼實現

那就不要用xml文件配置了,直接在代碼中手動添加布局,至於保存,就應該需要用sharepreference存一下,或者要是有服務端的話,直接從服務端讀取
手動布局代碼大概這樣,在OnCreate里做:
// 構造界面布局
LinearLayout layout = new LinearLayout(Context);
layout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT));
layout.setOrientation(LinearLayout.VERTICAL);
// 初始化TextView(個數用個循環)
TextView tv = new TextView(Context);
tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
tv.setText(「顯示的文字」);
tv.setTextSize(16);
layout.addView(tv);
//添加布局
setContentView(layout);
這樣應該就可以了

好像還有個簡單的方法(有xml也可以直接在布局上添加):
//獲得當前的xml布局
LinearLayout mLinearLayout = new LinearLayout(Context);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);
// 初始化TextView(個數用個循環)
TextView addText = new TextView(Context);
addText.setText("顯示的文字");
addText.setTextSize(16);
mLinearLayout.addView(addText, params);
試試吧,

閱讀全文

與android折疊textview相關的資料

熱點內容
如何批量快速壓縮視頻 瀏覽:432
我的世界如何加入ice伺服器 瀏覽:873
兄弟cnc編程說明書 瀏覽:204
php閃電入門教程學習 瀏覽:152
金岳霖邏輯pdf 瀏覽:938
linuxtomcat線程 瀏覽:77
pboc長度加數據加密 瀏覽:187
英雄聯盟國際服手游怎麼下安卓 瀏覽:297
程序員的思路 瀏覽:234
只能用命令獲得的四種方塊 瀏覽:358
怎麼用命令方塊防止開創造 瀏覽:807
掃描版的pdf 瀏覽:790
編程貓怎樣做3d游戲 瀏覽:207
怎麼查找雲伺服器上的ftp 瀏覽:156
我的世界伺服器如何注冊賬號 瀏覽:934
統計英文字元python 瀏覽:423
linux信息安全 瀏覽:908
壓縮機接線柱爆 瀏覽:1000
程序員自主創業 瀏覽:584
匯編程序員待遇 瀏覽:359