Android开发中如何给EditText设置多行效果
来源:互联网 发布:上海博物馆淘宝 编辑:程序博客网 时间:2024/04/25 01:40
最近在做项目的过程中遇到了这个问题,就从网上搜索了一些,但是都没有注释很不好理解,所以就整理下,以供大家学习。
import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.util.AttributeSet;import android.widget.EditText;public class LineEditText extends EditText {//默认的构造函数 public LineEditText(Context context) {super(context);}private Paint linePaint; //画线需要的画笔 private float margin; // private int paperColor; // //EditText构造方法之一 public LineEditText(Context paramContext, AttributeSet paramAttributeSet) { super(paramContext, paramAttributeSet); this.linePaint = new Paint(); //新建一个画笔 this.linePaint.setStyle(Paint.Style.STROKE); //设置画笔的风格为空心 this.linePaint.setColor(Color.BLUE); //设置画笔的颜色 } //写绘画方法 protected void onDraw(Canvas paramCanvas) { paramCanvas.drawColor(this.paperColor); int i = getLineCount(); //得到EditText的行数 int j = getHeight(); //得到EditText的高度 单位px int k = getLineHeight(); //得到每一行的高度 int m = j / k; //得到行数 if (i < m) { i = m; } int n = getCompoundPaddingTop();//EditText上方的起点,除去了padding的区域 // paramCanvas.drawLine(0.0F, n, getRight(), n, this.linePaint); //在上方顶部画一条线 for (int ii = 0;; ii++) { if (ii >= i) { setPadding(10 + (int) this.margin, 0, 0, 0); //设置了下padding super.onDraw(paramCanvas); //调用父函数的绘画方法 paramCanvas.restore(); return; } n += k; paramCanvas.drawLine(0.0F, n, getRight(), n, this.linePaint);//在每一行的底部画一条线 paramCanvas.save(); //保存已绘制的对象 } }}
另外默认的EditText 都有边框的,所以可以在布局文件中
设置android:background="@null"来消除
而且一般EditText的字体都是居中的,所以要设置
android:gravity="top"使得字体居于上方,与画的线吻合。
附xml的使用:
<com.test.EditText.LineEditText android:layout_width="match_parent" android:layout_height="170dp" android:gravity="top" android:background="@null" android:textColor="@android:color/black" android:inputType="textMultiLine"
/>注意上述的引用方式跟默认的有所区别。
其余的按照默认使用就可以了。
- Android开发中如何给EditText设置多行效果
- Android开发:如何设置EditText多行显示输出及改变多行EditText的默认显示方式
- Android中给控件设置动画效果
- 如何在EditText中设置固定图片——Android移动开发
- 如何在EditText中设置固定图片——Android移动开发
- 如何在EditText中设置固定图片——Android移动开发
- 如何在EditText中设置固定图片——Android移动开发
- Android开发中EditText小技巧之如何设置光标颜色及粗细
- 如何在EditText中设置固定图片——Android移动开发 .
- 如何在EditText中设置固定图片——Android移动开发
- Android EditText 多行输入滚动效果。
- Android EditText 多行输入滚动效果。
- Android给TextView,EditText等设置边框
- Android给TextView,EditText等设置边框
- Android笔记:给EditText设置边框
- 【EditText】Android 中设置 EditText 光标颜色
- 移动端开发中是不是你如何给webview设置适配屏幕都没效果,可能是这种原因
- [Android开发常见问题-9] android如何给PagerTitleStrip设置字体大小
- 修改initrd.lz文件内容及其解压和压缩方法
- java计算两个日期相差多少天
- Citrix XenApp6.5 另类发布文档
- poj2676解题报告
- •质量计划和缺陷估计 •质量管理的流程化方法
- Android开发中如何给EditText设置多行效果
- log4j配置(二):在web项目中配置log4j
- 单链表操作
- I Hate It
- C语言简介
- Steganography
- Java 集合框架-Collection
- 分治法求最小点对
- JAVA NIO之MappedByteBuffer