1

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);
    }
}
4

1 に答える 1

-1

これをビューxmlに追加します

android:ellipsize="end";

それが役に立てば幸い...

于 2012-09-24T09:32:51.310 に答える