CodeEditText.java 文件源码

java
阅读 23 收藏 0 点赞 0 评论 0

项目:FxExplorer 作者:
private void init(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
    if (attrs != null && !isInEditMode()) {
        TypedArray ta;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            ta = context.obtainStyledAttributes(attrs, R.styleable.CodeEditText, defStyleAttr, defStyleRes);
        } else {
            ta = context.obtainStyledAttributes(attrs, R.styleable.CodeEditText);
        }
        fontFamily = ta.getString(R.styleable.CodeEditText_fontFamily);
        if (!TextUtils.isEmpty(fontFamily)) {
            setTypeface(Typeface.createFromAsset(context.getAssets(), fontFamily));
        } else {
            setTypeface(Typeface.MONOSPACE);
        }
        showLineNumber = ta.getBoolean(R.styleable.CodeEditText_showLineNumber, true);
        lineNumberColor = ta.getColor(R.styleable.CodeEditText_numberColor, Color.BLACK);
        ta.recycle();
    }
    numberMargin = (int) (context.getResources().getDisplayMetrics().density * 3 + 0.5);
    mRect = new Rect();
    lineNumberPaint = new Paint();
    lineNumberPaint.setStyle(Paint.Style.STROKE);
    lineNumberPaint.setTypeface(getTypeface());
    lineNumberPaint.setAntiAlias(true);
    lineNumberPaint.setFakeBoldText(false);
    lineNumberPaint.setSubpixelText(true);
    PathEffect effect = new DashPathEffect(new float[]{4, 4, 4, 4}, 1);
    lineNumberPaint.setPathEffect(effect);
    lineNumberPaint.setColor(lineNumberColor);
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号