天天看點

【Andorid X 項目筆記】TextView字幕效果(3)

一、效果圖

二、代碼

public class TextSubView extends TextView {

    private TextPaint mPaint;

    public TextSubView(Context context, AttributeSet attrs) {

        super(context, attrs);

        mPaint = new TextPaint(getPaint());

        mPaint.setStyle(TextPaint.Style.STROKE);

        mPaint.setShadowLayer(2.0F, 2.0F, 2.0F, Color.RED);

    }

    @Override

    protected void onDraw(Canvas canvas) {

        super.onDraw(canvas);

        canvas.save();

        canvas.clipRect(0, 0, 55, getBottom());

        canvas.drawText(getText().toString(), 0, getBaseline(), mPaint);

        canvas.restore();

}

代碼說明:

關鍵是setShadowLayer設定陰影效果以及onDraw的四行代碼,大家可以搜一下"Android clipRect"了解一下這個函數的作用,注意clipRect與drawText的順序不要弄反了。

繼續閱讀