
本文实例为大家分享了一个可以展开的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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)