private void initBackground() {
        final int lineSize = getLineSize();
        Drawable background;
        if (lineSize == 0) {
            background = null;
        } else {
            int increment = getResources().getDimensionPixelSize(R.dimen.g_editText_lineSize_active_increment);
            int lineActive = lineSize + increment;
            int lineHalf = lineSize >> 1;

            // Creating normal state drawable
            ShapeDrawable normal = new ShapeDrawable(new BorderShape(new RectF(0, 0, 0, lineSize)));
            normal.getPaint().setColor(getLineColor(new int[]{android.R.attr.state_enabled}));

            // Creating pressed state drawable
            ShapeDrawable pressed = new ShapeDrawable(new BorderShape(new RectF(0, 0, 0, lineActive)));
            pressed.getPaint().setColor(getLineColor(new int[]{android.R.attr.state_pressed, android.R.attr.state_enabled}));

            // Creating focused state drawable
            ShapeDrawable focused = new ShapeDrawable(new BorderShape(new RectF(0, 0, 0, lineActive)));
            focused.getPaint().setColor(getLineColor(new int[]{android.R.attr.state_focused, android.R.attr.state_enabled}));

            // Creating disabled state drawable
            ShapeDrawable disabled = new ShapeDrawable(new BorderShape(new RectF(0, 0, 0, lineHalf), lineHalf, lineSize));
            disabled.getPaint().setColor(getLineColor(new int[]{-android.R.attr.state_enabled}));
            // disabled.getPaint().setAlpha(0xA0);

            Drawable[] drawable = new Drawable[]{pressed, focused, normal, disabled};
            background = createStateListDrawable(drawable);

        }

        // Set Background
        UiCompat.setBackground(this, background);

    }
EditText
This have a title from hint
<p>
<p><strong>XML attributes</strong></p>
<p>
See {@link net.qiujuer.genius.ui.R.styleable#EditText_gFont Attributes},
{@link net.qiujuer.genius.ui.R.styleable#EditText_gHintTitle Attributes},
{@link net.qiujuer.genius.ui.R.styleable#EditText_gHintTitlePaddingBottom Attributes}
{@link net.qiujuer.genius.ui.R.styleable#EditText_gHintTitlePaddingLeft Attributes}
{@link net.qiujuer.genius.ui.R.styleable#EditText_gHintTitlePaddingRight Attributes}
{@link net.qiujuer.genius.ui.R.styleable#EditText_gHintTitlePaddingTop Attributes}
{@link net.qiujuer.genius.ui.R.styleable#EditText_gHintTitleTextSize Attributes}
{@link net.qiujuer.genius.ui.R.styleable#EditText_gLineColor Attributes}
{@link net.qiujuer.genius.ui.R.styleable#EditText_gLineSize Attributes}
caprice/ui/src/main/java/net/qiujuer/genius/ui/widget/EditText.java