国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android實現可以展開的TextView

2019-10-22 18:22:51
字體:
來源:轉載
供稿:網友

本文實例為大家分享了一個可以展開TextView的具體代碼,供大家參考,具體內容如下

原理是通過點擊的時候設置 setMaxLines(lineNum)來實現:

public class ExpandableTextView extends TextView {  private static int MIN_LINE_NUM = 2;  private static int MAX_LINE_NUM = 20;  private int lineNum = MIN_LINE_NUM;  private boolean mIsExpanded = false;  Bitmap bitmapDown;  Bitmap bitmapUp;  int w, h;  /** 點擊事件listener */  private OnClickListener mOnClickListener;   public ExpandableTextView(Context context, AttributeSet attrs) {   super(context, attrs);   init(context, attrs);  }   private void init(Context context, AttributeSet attrs) {   setMaxLines(lineNum);   bitmapDown = BitmapFactory.decodeResource(getResources(), R.drawable.update_detail_down);   bitmapUp = BitmapFactory.decodeResource(getResources(), R.drawable.update_detail_up);   w = bitmapDown.getWidth() + (int) context.getResources().getDimension(R.dimen.expand_textview_right);   h = bitmapDown.getHeight() + (int) context.getResources().getDimension(R.dimen.expand_textview_bottom);      super.setOnClickListener(new OnClickListener() {    @Override    public void onClick(View v) {     if (lineNum == MIN_LINE_NUM) {      lineNum = MAX_LINE_NUM;      setMaxLines(lineNum);     } else {      lineNum = MIN_LINE_NUM;      setMaxLines(lineNum);     }     if (mOnClickListener != null) {      mOnClickListener.onClick(v);     }    }   });  }   @Override  public void setOnClickListener(OnClickListener listener) {   if (!isClickable()) {    setClickable(true);   }   mOnClickListener = listener;  }   @Override  public void setMaxLines(int maxlines) {   super.setMaxLines(maxlines);    if (lineNum == MAX_LINE_NUM) {    mIsExpanded = true;   } else {    mIsExpanded = false;   }  }   public boolean isExpanded() {   return mIsExpanded;  }   @Override  protected void onDraw(Canvas canvas) {   if (getLineCount() <= MIN_LINE_NUM) {    super.onDraw(canvas);    return;   }   if (lineNum == MIN_LINE_NUM) {    canvas.drawBitmap(bitmapDown, getWidth() - w, getHeight() - h, null);   } else {    canvas.drawBitmap(bitmapUp, getWidth() - w, getHeight() - h, null);   }   super.onDraw(canvas);  }    public void setMaxLine(int line) {   lineNum = line;   setMaxLines(line);  } } 

這樣來寫Layout:

<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:background="#FFFFFF" >   <TextView   android:id="@+id/detail_action"   android:textColor="#000000"   android:textSize="11sp"   android:layout_width="wrap_content"   android:layout_height="wrap_content"   android:layout_alignParentTop="true"   android:layout_marginRight="8dip"   android:drawablePadding="4dip"   android:paddingBottom="10dip"   android:paddingTop="10dip"   android:singleLine="true"   android:text="sdfkljsfiosjdfiosfjsiofjsdifsd" />   <com.example.view.ExpandableTextView   android:id="@+id/textview"   android:layout_width="100dp"   android:layout_height="wrap_content"   android:layout_below="@id/detail_action"   android:lineSpacingExtra="4dip"   android:paddingBottom="-40dip"   android:paddingRight="48dip"   android:text="adfsfsfewrwerwerwerqRWgdffdfdfERSAFSDFSDFSDd"   android:layout_marginTop="-5dip"   android:textColor="#000000" >  </com.example.view.ExpandableTextView>       <TextView   android:id="@+id/detail_action1"   android:textColor="#000000"   android:textSize="11sp"   android:layout_width="wrap_content"   android:layout_height="wrap_content"   android:layout_below="@id/textview"   android:layout_marginRight="8dip"   android:drawablePadding="4dip"   android:paddingBottom="10dip"   android:paddingTop="10dip"   android:singleLine="true"   android:text="sdfkljsfiosjdfiosfjsiofjsdifsd" />  </RelativeLayout> 

效果圖:

Android,展開,TextView

代碼一個可以展開的TextView

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 白朗县| 双城市| 宁河县| 长乐市| 宁德市| 葫芦岛市| 桐柏县| 庐江县| 永平县| 浦东新区| 米易县| 漳州市| 麻城市| 南城县| 遂川县| 正蓝旗| 樟树市| 辽阳市| SHOW| 阿荣旗| 五大连池市| 乌海市| 八宿县| 交口县| 沙洋县| 乐东| 六安市| 石台县| 鄂尔多斯市| 孟津县| 安平县| 铜鼓县| 仙居县| 繁峙县| 从江县| 孟州市| 甘谷县| 成安县| 永济市| 盐城市| 深泽县|