自定义View 基础, bitmap

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.batman);
https://github.com/wanglianghai/PracticeDraw1
https://juejin.im/post/5962a3746fb9a06ba2687226
提示:写代码时有地方一行不行看一整个地方,有时候会忘记写的,方法名准确。bebug一步一步往下看
onDraw会循环调用造成变量的进入onDraw初始值不一样.(所以我多个Paint)
计算文字宽高
Rect mRectString = new Rect()
mPaint.getTextBounts(mString, 0, mStrings.length(), mRect)
int width = mRectString.width();
1.View是黄色的背景drawBitmap()

canvas.drawerColor(Color.YELLOW);

2.空心圆去锯齿.anti:抗 alias:锯齿状,画笔的样式

//画笔
mPaint2.setStyle(Paint.Style.STROKE);
//画笔宽
mPaint2.setStrokeWidth(2);
//画抗锯齿状
mPaint2.setAntiAlias(true);
//画圆
canvas.drawCircle(450, 100, 100, mPaint2)

3.一个圆点,画笔的笔尖

 //画笔
 mPaint1.setStyle(Paint.Style.STROKE);
 //笔尖的形状
 mPaint1.setStrokeCap(Paint.Cap.ROUND);
 //笔尖的粗细
 mPaint1.setStrokeWidth(50);
 canvas.drawPoint(200, 200, mPaint1);

4.画圆角矩形

canvas.drawRoundRect(200, 300, 500, 400, 50, 50, mPaint);

5.椭圆

private RectF rectF = new RectF(100, 50, 700, 450);

canvas.drawArc(rectF, -100, 100, true, mPaint1);//绘制扇形
canvas.drawArc(rectF, 20, 140, false, mPaint1); // 绘制弧形

6.爱心

    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    private void lovePath() {
        //移动开始点
        mPath.moveTo(400, 300);
        //终点
        mPath.lineTo(305, 170);
        //弧
        mPath.arcTo(300, 100, 400, 200, -199, 199, false);// 有痕迹
        mPath.arcTo(400, 100, 500, 200, -180, 199, false);
        mPath.lineTo(495, 170);
        //最后密封
        mPath.close();
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值