笔记本样式的EditText控件(每行均带下划虚线)
2013-11-01 18:10
274 查看
package com.zongyi.trip.ui; import com.zongyi.trip.R; import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.DashPathEffect; import android.graphics.Paint; import android.graphics.PathEffect; import android.util.AttributeSet; import android.widget.EditText; @SuppressLint({ "ResourceAsColor", "DrawAllocation" }) public class LinedEditText extends EditText { // private Paint mPaint = new Paint(); public LinedEditText(Context context) { super(context); initPaint(); } public LinedEditText(Context context, AttributeSet attrs) { super(context, attrs); initPaint(); } public LinedEditText(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); initPaint(); } private void initPaint() { // mPaint.setStyle(Paint.Style.STROKE); //// mPaint.setColor(0x80000000); // mPaint.setStyle(Paint.Style.STROKE); // mPaint.setColor(R.color.dashed_line_color); // PathEffect effects = new DashPathEffect(new float[]{5,5,5,5},1); // mPaint.setPathEffect(effects); } @Override protected void onDraw(Canvas canvas) { Paint mPaint = new Paint(); // mPaint.setColor(0x80000000); mPaint.setStyle(Paint.Style.STROKE); mPaint.setColor(Color.LTGRAY); PathEffect effects = new DashPathEffect(new float[]{5,5,5,5},5); mPaint.setPathEffect(effects); int left = getLeft(); int right = getRight(); int paddingTop = getPaddingTop(); int paddingBottom = getPaddingBottom(); int paddingLeft = getPaddingLeft(); int paddingRight = getPaddingRight(); int height = getHeight(); int lineHeight = getLineHeight(); int spcingHeight = (int) getLineSpacingExtra(); int count = (height-paddingTop-paddingBottom) / lineHeight; for (int i = 0; i < count; i++) { int baseline = lineHeight * (i+1) + paddingTop - spcingHeight/2 ; canvas.drawLine(left+paddingLeft, baseline, right-paddingRight, baseline, mPaint); } super.onDraw(canvas); } }
<com.zongyi.trip.ui.LinedEditText android:id="@+id/edittext_message" android:layout_width="fill_parent" android:layout_height="200dp" android:lineSpacingExtra="15dp" android:gravity="top" android:textColor="#ACB6BB" android:textSize="18sp" />
相关文章推荐
- 笔记本样式的EditText控件(每行均带下划虚线)
- Silverlight TreeView 控件带虚线样式
- Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放
- [置顶] Qt控件之自定义ComboBox样式
- ListView 控件扩展样式(有网格线、整行选择、始终显示选择项)
- Flex的NumericStepper控件中如何通过textAlign样式设置文本对齐方式的例子
- Flex中通过textAlign样式在一个按钮(Button)控件中设置标签(label)对齐方式的例子
- Xamarin.Forms 用户界面——控件——Style——全局样式
- 在代码写布局,设置相应的位置,同时分析一下布局中View这个控件的高度,宽度(主要用于画实线虚线)
- AspNetAjaxPager,Asp.Net通用无刷新Ajax分页控件,支持多样式多数据绑定
- 使用easyui框架form控件,单选按钮radio或复选框checkbox样式问题
- Silverlight控件样式相关技巧应用解析
- JS添加或修改控件的样式(Class)
- 利用反射机制,禁止Edittext弹出软件盘,但光标依然正常显示,控件仍能获得焦点
- 【Android】关于Android控件EditText的属性InputType的一些经验
- 利用样式——android2.3实现android4.0风格的edittext
- Android如何禁止向EditText控件中输入内容详解
- OWA或Messenger样式的信息提示窗口&mdash;&mdash;编写ASP.NET AJAX Extender控件(中):封装成服务器端控件
- 我的ASP.NET AJAX控件&mdash;&mdash;PopupNotificationExtender:实现OWA或Messenger样式的信息提示窗口
- 表单控件样式简单用例