Android实现可以展开的TextView

Android实现可以展开的TextView,第1张

概述本文实例为大家分享了一个可以展开的TextView的具体代码,供大家参考,具体内容如下

本文实例为大家分享了一个可以展开的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,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> 

效果图:

代码:一个可以展开的TextView

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

以上是内存溢出为你收集整理的Android实现可以展开的TextView全部内容,希望文章能够帮你解决Android实现可以展开的TextView所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1143624.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存