最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android MarkTipsView文字標(biāo)識控件使用方法

 更新時間:2021年04月16日 10:44:46   作者:RelinRan  
這篇文章主要為大家詳細介紹了Android MarkTipsView文字標(biāo)識控件的使用方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Android MarkTipsView文字標(biāo)識控件的具體代碼,供大家參考,具體內(nèi)容如下

效果預(yù)覽

使用

使用方式跟TextView使用方式一樣,背景設(shè)置直接setBackgroundColor

源碼:

import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.RectF;
import android.util.AttributeSet;

import androidx.appcompat.widget.AppCompatTextView;

/**
 * 繪制mark標(biāo)注
 */
public class MarkTipsView extends AppCompatTextView {

    /**
     * 畫筆
     */
    private Paint paint;
    /**
     * 寬度
     */
    private int width;
    /**
     * 高度
     */
    private int height;
    /**
     * 標(biāo)識寬度
     */
    private int markWidth = 12;
    /**
     * 標(biāo)識高度
     */
    private int markHeight = 12;
    /**
     * 圓角大小
     */
    private float radius = 10;
    /**
     * 填充顏色
     */
    private int solid = Color.parseColor("#F1AA44");

    public MarkTipsView(Context context) {
        super(context);
        initAttributeSet(context, null);
    }

    public MarkTipsView(Context context, AttributeSet attrs) {
        super(context, attrs);
        initAttributeSet(context, attrs);
    }

    public MarkTipsView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        initAttributeSet(context, attrs);
    }

    private void initAttributeSet(Context context, AttributeSet attrs) {
        paint = new Paint();
        paint.setDither(true);
        paint.setAntiAlias(true);
        paint.setStyle(Paint.Style.FILL);
        TypedArray array = context.obtainStyledAttributes(attrs,new int[]{android.R.attr.background});
        solid =  array.getInt(0,solid);
        array.recycle();
    }

    @Override
    public void setBackgroundColor(int color) {
        solid = color;
        invalidate();
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        width = getMeasuredWidth();
        height = getMeasuredHeight();
    }

    @Override
    protected void onFinishInflate() {
        super.onFinishInflate();
        setPadding(getPaddingLeft(), getPaddingTop(), getPaddingRight(), getPaddingBottom() + markHeight);
    }


    @Override
    protected void onDraw(Canvas canvas) {
        paint.setColor(solid);
        //矩形
        Path path = new Path();
        RectF rect = new RectF(0, 0, width, height - markHeight);
        path.addRoundRect(rect, radius, radius, Path.Direction.CCW);
        //三角形
        Path onePath = new Path();
        onePath.lineTo(width / 2 - markWidth, rect.height());
        onePath.lineTo(width / 2, height);
        onePath.lineTo(width / 2 + markWidth, rect.height());
        onePath.close();
        path.addPath(onePath);
        //繪制路徑
        canvas.drawPath(path, paint);
        super.onDraw(canvas);
        //重繪文字
        setText(getText());
    }

    /**
     * 獲取底部標(biāo)識箭頭高度
     * @return
     */
    public int getMarkHeight() {
        return markHeight;
    }

    /**
     * 設(shè)置底部標(biāo)識箭頭高度
     * @param markHeight
     */
    public void setMarkHeight(int markHeight) {
        this.markHeight = markHeight;
        invalidate();
    }

    /**
     * 獲取底部標(biāo)識箭頭寬度
     * @return
     */
    public int getMarkWidth() {
        return markWidth;
    }

    /**
     * 設(shè)置底部標(biāo)識箭頭寬度
     * @param markWidth
     */
    public void setMarkWidth(int markWidth) {
        this.markWidth = markWidth;
        invalidate();
    }

    /**
     * 獲取圓角大小
     * @return
     */
    public float getRadius() {
        return radius;
    }

    /**
     * 設(shè)置圓角大小
     * @param radius
     */
    public void setRadius(float radius) {
        this.radius = radius;
        invalidate();
    }

}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

隆化县| 西乌| 盘山县| 泽州县| 庆云县| 广州市| 西充县| 崇信县| 旅游| 沙坪坝区| 定边县| 定结县| 永丰县| 晋城| 东山县| 如皋市| 新津县| 伊吾县| 师宗县| 阿拉善左旗| 望谟县| 高邮市| 罗甸县| 清水河县| 抚远县| 天长市| 蕲春县| 桂阳县| 蕲春县| 平陆县| 井陉县| 东城区| 莫力| 平乐县| 商丘市| 台前县| 元谋县| 天全县| 敖汉旗| 榆社县| 巴林右旗|