Android自定義TextView仿微信朋友圈文字展開全文功能
更新時(shí)間:2018年06月02日 12:39:21 作者:CommyTin
這篇文章主要為大家詳細(xì)介紹了Android自定義TextView仿微信朋友圈文字展開全文功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
Android自定義TextView仿微信朋友圈文字信息,展開全文功能
代碼及注釋如下:
首先寫一個(gè)xml文件 showmore.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="16sp"
android:maxLines="3"
android:ellipsize="end"/>
<TextView
android:id="@+id/hide_show"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/btn_showmore"
android:textColor="@color/colorBlue"
android:textSize="16sp"
android:text="顯示更多"
android:padding="0dp"
/>
</LinearLayout>
//新建java類繼承自LinearLayout
public class ShowMoreTextView extends LinearLayout {
// 用來標(biāo)記是否為展開狀態(tài)
private int hideOrShow = 0;
private TextView textView;
private TextView button;
public ShowMoreTextView(Context context) {
super(context);
}
public ShowMoreTextView(Context context, AttributeSet attrs) {
super(context, attrs);
// 實(shí)例化layoutInflater對象,獲取到布局填充服務(wù)
LayoutInflater layoutInflater = (LayoutInflater)context.
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// 填充自定義的布局xml文件
layoutInflater.inflate(R.layout.showmore,this);
textView = (TextView)findViewById(R.id.content);
button=(TextView) findViewById(R.id.hide_show);
button.setText("顯示更多");
// 隱藏或顯示
hideOrShow();
}
// 創(chuàng)建setContent方法為TextView填充內(nèi)容
public void setContent(String content) {
textView.setText(content);
}
public void hideOrShow() {
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//由hideOrShow的值確定按鈕和textview的狀態(tài)
if (hideOrShow == 0) {
button.setText("收起");
textView.setMaxLines(100);
hideOrShow = 2;
}else if(hideOrShow==2){
button.setText("顯示更多");
textView.setMaxLines(3);
hideOrShow = 1;
}else if(hideOrShow==1){
button.setText("收起");
textView.setMaxLines(100);
hideOrShow=2;
}
}
});
}
}
接下來就可以引用了,與普通的控件一樣 activity_test.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.commy.activity.TestActivity">
<com.yunfeng.laojiahenan.view.ShowMoreTextView
android:id="@+id/showmore"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</RelativeLayout>
測試類:
public class TestActivity extends AppCompatActivity {
private ShowMoreTextView showMoreTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
showMoreTextView=(ShowMoreTextView)findViewById(R.id.showmore);
showMoreTextView.setContent("
There is so much life
I've left to live
And this fire's burning still
When I watch you look at me
I think I could find a way
To stand for every dream
And forsake this solid ground
And give up this fear within
Of what would happen if they end you
I'm in love with you
");
}
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- 淺扒Android動(dòng)態(tài)設(shè)置字體大小的示例
- android textview設(shè)置字體的行距和字間距
- Android TextView 設(shè)置字體大小的方法
- Android Dialog 設(shè)置字體大小的具體方法
- Flutter中嵌入Android 原生TextView實(shí)例教程
- android使用TextView實(shí)現(xiàn)跑馬燈效果
- android TextView中識(shí)別多個(gè)url并分別點(diǎn)擊跳轉(zhuǎn)方法詳解
- 詳解Android TextView屬性ellipsize多行失效的解決思路
- Android使用TypeFace設(shè)置TextView的文字字體
相關(guān)文章
Android實(shí)現(xiàn)3秒鐘自動(dòng)關(guān)閉界面
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)3秒鐘自動(dòng)關(guān)閉界面,以支付成功為例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02
使用ListView實(shí)現(xiàn)網(wǎng)上訂餐首頁
這篇文章主要為大家詳細(xì)介紹了使用ListView實(shí)現(xiàn)網(wǎng)上訂餐首頁,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-01-01
Android自定義Style實(shí)現(xiàn)方法
Android自定義Style實(shí)現(xiàn)方法,需要的朋友可以參考一下2013-06-06
Android實(shí)現(xiàn)Recycleview懸浮粘性頭部外加右側(cè)字母導(dǎo)航
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)Recycleview懸浮粘性頭部外加右側(cè)字母導(dǎo)航,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06

