gpt4 book ai didi

android,如何在edittext中绘制虚线

转载 作者:太空宇宙 更新时间:2023-11-03 11:59:52 24 4
gpt4 key购买 nike

我引用了这个链接: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

您可以使用以下代码 fragment 在构造函数中关闭硬件加速:

setLayerType(View.LAYER_TYPE_SOFTWARE, null);

关于android,如何在edittext中绘制虚线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12401311/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com