大佬教程收集整理的这篇文章主要介绍了Android实现可以展开的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://scheR_969_11845@as.android.com/apk/res/android" xmlns:tools="http://scheR_969_11845@as.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全部内容,希望文章能够帮你解决Android实现可以展开的TextView所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。