Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了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

代码一个可以展开的TextView

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

大佬总结

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

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:展开