我参考了这个链接:How do I make a dotted/dashed line in Android?,并使用了DashPathEffect.但这对我不起作用?为什么?我的代码:
public class NoteEditText extends EditText { private Paint mPaint; public NoteEditText(Context context) { super(context); } public NoteEditText(Context context, AttributeSet attrs) { super(context, attrs); mPaint = new Paint(); mPaint.setstrokeWIDth(1); mPaint.setStyle(Paint.Style.FILL_AND_stroke); mPaint.setcolor(color.DKGRAY); PathEffect effects = new DashPathEffect(new float[]{5,5,5,5},1); mPaint.setPathEffect(effects); } @OverrIDe public voID onDraw(Canvas canvas) { super.onDraw(canvas); int height = this.getHeight(); int lineHeight = this.getlineHeight(); int lineNum = height / lineHeight; L.l("line count: " + lineNum); for (int i = 0; i < lineNum; i++) { int y = (i + 1) * lineHeight; canvas.drawline(0, y, this.getWIDth() - 1, y, mPaint); } }}
解决方法:
硬件加速不支持方法setPathEffect.默认情况下它已打开(我认为自AndroID 4.0以来)
http://developer.android.com/guide/topics/graphics/hardware-accel.html#unsupported
您可以使用以下代码段关闭构造函数内的硬件加速:
总结setLayerType(VIEw.LAYER_TYPE_SOFTWARE, null);
以上是内存溢出为你收集整理的android,如何在edittext中绘制虚线全部内容,希望文章能够帮你解决android,如何在edittext中绘制虚线所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)