自定义控件之绘图篇(二):路径及文字 一目了然 ,适合初学者

惯例:先上图后说话,谢谢各位伙伴的支持! 有你们是我的福分!

             欢迎一起讨论和学习,QQ:732258496  微信:15520726587


 每日一言:出路往往留给敢闯敢做之人!

package nsuperseller.grasp.com.my_paint.view;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Rect;
import android.graphics.RectF;
import android.view.View;

/**
 * Created by Administrator on 2016/9/2.
 */
public class MyViewPath extends View {
    Context m_context;

    public MyViewPath(Context context) {
        super(context);
        m_context = context;
    }

    //重写OnDraw()函数,在每次重绘时自主实现绘图
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        // paintRect(canvas);//画圆
        //  paintRoundRect(canvas);//
        //paintRound(canvas);//圆形路径
//        paintOval(canvas);//椭圆
//       paintAngle(canvas);//弧
        setPaint(canvas);
    }

    /*画三角形-----1、直线路径*/
    private void paintSanjiao(Canvas canvas) {
        //设置画笔基本属性
        Paint paint = new Paint();
        paint.setAntiAlias(true);//抗锯齿功能
        paint.setColor(Color.RED);//设置画笔的颜色
        paint.setStyle(Paint.Style.STROKE);//设置填充的样式
        paint.setStrokeWidth(5);//设置画笔的宽度

        Path path = new Path();
        path.moveTo(10, 10);//设置起始点
        path.lineTo(10, 100);//第一条直线的终点,也是第二条直线的起点
        path.lineTo(300, 100);//画第二条直线
        //  path.lineTo(500,100);//画第三条直线
        path.close();
        canvas.drawPath(path, paint);
    }

    /*矩形路径  依据路径写出文字*/
    private void paintRect(Canvas canvas) {
        //设置画笔基本属性
        Paint paint = new Paint();
        paint.setAntiAlias(true);//抗锯齿功能
        paint.setColor(Color.RED);//设置画笔的颜色
        paint.setStyle(Paint.Style.STROKE);//设置填充的样式
        paint.setStrokeWidth(5);//设置画笔的宽度
        //先创建两个大小一样的矩阵
        //第一个逆向生成   Path.Direction.CCW
        Path path1 = new Path();
        RectF rectF1 = new RectF(50, 50, 240, 200);
        path1.addRect(rectF1, Path.Direction.CCW);
        //第二个顺时生成
        Path path2 = new Path();
        RectF rectF2 = new RectF(290, 50, 480, 200);
        path2.addRect(rectF2, Path.Direction.CW);
        //先画出这两个路径
        canvas.drawPath(path1, paint);
        canvas.drawPath(path2, paint);

        //依据路径写出文字
        String text = "我爱我自己,我爱我生命!我是最棒的!";
        paint.setColor(Color.GREEN);
        paint.setTextSize(20);
        canvas.drawTextOnPath(text, path1, 8, 10, paint);
        canvas.drawTextOnPath(text, path2, 0, 18, paint);
    }

    //圆角矩形路径
    private void paintRoundRect(Canvas canvas) {
        //设置画笔基本属性
        Paint paint = new Paint();
        paint.setAntiAlias(true);//抗锯齿功能
        paint.setColor(Color.RED);//设置画笔的颜色
        paint.setStyle(Paint.Style.STROKE);//设置填充的样式
        paint.setStrokeWidth(5);//设置画笔的宽度

        Path path = new Path();
        RectF rect = new RectF(50, 50, 24, 200);
        path.addRoundRect(rect, 10, 15, Path.Direction.CCW);

        RectF rectF1 = new RectF(290, 50, 480, 200);
        float radii[] = {10, 15, 20, 25, 30, 35, 40, 45};
        path.addRoundRect(rectF1, radii, Path.Direction.CCW);

        canvas.drawPath(path, paint);
    }

    //圆形路径
    private void paintRound(Canvas canvas) {
        //设置画笔基本属性
        Paint paint = new Paint();
        paint.setAntiAlias(true);//抗锯齿
        paint.setStyle(Paint.Style.STROKE);//设置填充的样式
        paint.setColor(Color.RED);//设置画颜色
        paint.setStrokeWidth(5);//设置画笔的宽度
        Path path = new Path();
        path.addCircle(200, 200, 100, Path.Direction.CCW);
        canvas.drawPath(path, paint);
    }

    //椭圆路径
    private void paintOval(Canvas canvas) {
        //设置画笔基本属性
        Paint paint = new Paint();
        paint.setAntiAlias(true);//抗锯齿
        paint.setStyle(Paint.Style.STROKE);//设置填充的样式
        paint.setColor(Color.RED);//设置画颜色
        paint.setStrokeWidth(5);//设置画笔的宽度
        Path path = new Path();
        RectF rect = new RectF(50, 50, 240, 200);
        path.addOval(rect, Path.Direction.CCW);
        canvas.drawPath(path, paint);
    }

    //弧路径
    private void paintAngle(Canvas canvas) {
        Paint paint = new Paint();
        paint.setAntiAlias(true);
        paint.setColor(Color.RED);
        paint.setStrokeWidth(5);
        paint.setStyle(Paint.Style.STROKE);

        Path path = new Path();
        RectF rectF = new RectF(50, 50, 240, 200);
        path.addArc(rectF, 0, 200);
        canvas.drawPath(path, paint);
    }

    //线段轨迹
    private void setPaint(Canvas canvas) {
        //普通设置
        Paint paint = new Paint();
        paint.setAntiAlias(true);
        paint.setStrokeWidth(5);
        paint.setColor(Color.RED);
        paint.setStyle(Paint.Style.FILL);
        paint.setTextSize(40);
        paint.setTextAlign(Paint.Align.CENTER);

        //样式设置
        paint.setFakeBoldText(true);//粗体
        paint.setUnderlineText(true);//下划线
        paint.setTextSkewX((float) -0.25);//设置字体水平倾斜度,普通斜体字是-0.25
        paint.setStrikeThruText(true);//设置带有删除线效果

        //其他设置
        paint.setTextScaleX(2);

        canvas.drawText("我爱我自己,我爱我生命!我是最棒的!", 10, 300, paint);
    }
}



胚胎实例分割数据集 一、基础信息 • 数据集名称:胚胎实例分割数据集 • 图片数量: 训练集:219张图片 验证集:49张图片 测试集:58张图片 总计:326张图片 • 训练集:219张图片 • 验证集:49张图片 • 测试集:58张图片 • 总计:326张图片 • 分类类别: 胚胎(embryo):表示生物胚胎结构,适用于发育生物学研究。 • 胚胎(embryo):表示生物胚胎结构,适用于发育生物学研究。 • 标注格式:YOLO格式,包含实例分割的多边形标注,适用于实例分割任务。 • 数据格式:图片来源于相关研究领域,格式为常见图像格式,细节清晰。 、适用场景 • 胚胎发育AI分析系统:构建能够自动分割胚胎实例的AI模型,用于生物学研究中的形态变化追踪和量化分析。 • 医学与生物研究:在生殖医学、遗传学等领域,辅助研究人员进行胚胎结构识别、分割和发育阶段评估。 • 学术与创新研究:支持计算机视觉与生物医学的交叉学科研究,推动AI在胚胎学中的应用,助力高水平论文发表。 • 教育与实践培训:用于高校或研究机构的实验教学,帮助学生和从业者掌握实例分割技术及胚胎学知识。 三、数据集优势 • 精准与专业性:实例分割标注由领域专家完成,确保胚胎轮廓的精确性,提升模型训练的可靠性。 • 任务专用性:专注于胚胎实例分割,填补相关领域数据空白,适用于细粒度视觉分析。 • 格式兼容性:采用YOLO标注格式,易于集成到主流深度学习框架中,简化模型开发与部署流程。 • 科学价值突出:为胚胎发育研究、生命科学创新提供关键数据资源,促进AI在生物学中的实际应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄毛火烧雪下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值