我正在使用自定义编辑文字在我的应用中显示笔记活动。我目前面临的问题是我无法更改字段的下划线颜色。下划线颜色似乎有静态颜色。 尝试了这么多解决方案,但似乎没有改变颜色。我做错了什么?
public class LinedEditText extends android.support.v7.widget.AppCompatEditText {
private Rect mRect;
private Paint mPaint;
public LinedEditText(Context context, AttributeSet attrs)
{
super(context, attrs);
mRect = new Rect();
mPaint = new Paint();
mPaint.setStyle(Paint.Style.STROKE);
int color = ContextCompat.getColor(context, R.color.colorPrimaryDark);
mPaint.setColor(color);
}
@Override
protected void onDraw(Canvas canvas) {
int height = canvas.getHeight();
int curHeight = 0;
Rect r = mRect;
Paint paint = mPaint;
int baseline = getLineBounds(0, r);
for (curHeight = baseline + 1; curHeight < height;
curHeight += getLineHeight())
{
canvas.drawLine(r.left, curHeight, r.right, curHeight, paint);
}
super.onDraw(canvas);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
invalidate();
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}
<com.app.example.notetaker.LinedEditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textMultiLine|textNoSuggestions"
android:minLines="10"
android:imeOptions="actionNone"
android:ems="10"
android:id="@+id/note_et_content"
android:layout_below="@+id/note_et_title"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignRight="@+id/note_et_title"
android:layout_alignEnd="@+id/note_et_title"
android:layout_alignParentBottom="true"
android:hint="enter your note"
android:gravity="top"/>
答案 0 :(得分:0)
我测试了你的代码并且它工作正常,所以我认为颜色资源文件中的错误。对于红色,字符串必须像这样思考:<color name="colorPrimaryDark">#f00</color>
还尝试将颜色直接设置为代码以进行检查,例如:int color = 0xFF00CC00;
,例如绿色。