editext フィールドに点線が必要です。これが私がこれまでに試したことです。しかし、私の目標には達しませんでした。何も表示されません。点線が欠けているのはなぜですか?どこが間違っているのですか?
main.xml にファイルされている EditText
<view
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
class="com.xxx.yyy.MainActivity$LinedEditText"
android:background="@android:color/transparent"
android:inputType="textEmailAddress"
android:maxHeight="30dp"
android:singleLine="true"
android:minHeight="30dp"
android:textSize="13dp" />
MainActivity 内..
public static class LinedEditText extends EditText {
private Rect mRect;
private Paint mPaint;
// we need this constructor for LayoutInflater
public LinedEditText(Context context, AttributeSet attrs) {
super(context, attrs);
mRect = new Rect();
mPaint = new Paint();
mPaint.setARGB(255, 0, 0,0);
mPaint.setStyle(Style.STROKE);
mPaint.setPathEffect(new DashPathEffect(new float[] {1,2}, 0));
mPaint.setColor(Color.RED);
}
@Override
protected void onDraw(Canvas canvas) {
int count = getLineCount();
for (int i = 0; i < count; i++) {
int baseline = getLineBounds(i, mRect);
canvas.drawLine(mRect.left, baseline + 1, mRect.right, baseline + 1, mPaint);
}
super.onDraw(canvas);
}
}