ArcsDemo

package com.example.xfermodesdemo;

import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.os.Bundle;
import android.view.View;

public class ArcsActivity extends Activity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(new SampleView(this));
	}

	private static class SampleView extends View {
		private Paint[] mPaints;
		private Paint mFramePaint;// 大图形画笔
		private boolean[] mUseCenters;
		private RectF[] mOvals;
		private RectF mBigOval;
		private float mStart;
		private float mSweep;
		private int mBigIndex;

		private static final float SWEEP_INC = 2;
		private static final float START_INC = 15;

		public SampleView(Context context) {
			super(context);

			mPaints = new Paint[4];
			mUseCenters = new boolean[4];
			mOvals = new RectF[4];

			//圆1 Paint.Style.FILL
			//center false
			mPaints[0] = new Paint();
			mPaints[0].setAntiAlias(true);// 抗锯齿
			mPaints[0].setStyle(Paint.Style.FILL);
			mPaints[0].setColor(0x88FF0000);
			mUseCenters[0] = false;

			//圆2 Paint.Style.FILL
			//center true
			mPaints[1] = new Paint(mPaints[0]);
			mPaints[1].setColor(0x8800FF00);
			mUseCenters[1] = true;

			//圆3 Paint.Style.STROKE
			//center false
			mPaints[2] = new Paint(mPaints[0]);
			mPaints[2].setStyle(Paint.Style.STROKE);
			mPaints[2].setStrokeWidth(4);
			mPaints[2].setColor(0x880000FF);
			mUseCenters[2] = false;

			//圆4 Paint.Style.STROKE
			//center true
			mPaints[3] = new Paint(mPaints[2]);
			mPaints[3].setColor(0x88888888);
			mUseCenters[3] = true;

			mBigOval = new RectF(40, 10, 280, 250);

			mOvals[0] = new RectF(10, 270, 70, 330);
			mOvals[1] = new RectF(90, 270, 150, 330);
			mOvals[2] = new RectF(170, 270, 230, 330);
			mOvals[3] = new RectF(250, 270, 310, 330);

			mFramePaint = new Paint();
			mFramePaint.setAntiAlias(true);
			mFramePaint.setStyle(Paint.Style.STROKE);
			mFramePaint.setStrokeWidth(0);
		}

		private void drawArcs(Canvas canvas, RectF oval, boolean useCenter,
				Paint paint) {
			canvas.drawRect(oval, mFramePaint);
			canvas.drawArc(oval, mStart, mSweep, useCenter, paint);//绘制椭圆的函数
		}

		@Override
		protected void onDraw(Canvas canvas) {
			canvas.drawColor(Color.WHITE);

			drawArcs(canvas, mBigOval, mUseCenters[mBigIndex],
					mPaints[mBigIndex]);

			for (int i = 0; i < 4; i++) {
				drawArcs(canvas, mOvals[i], mUseCenters[i], mPaints[i]);
			}

			mSweep += SWEEP_INC;
			if (mSweep > 360) {
				mSweep -= 360;
				mStart += START_INC;
				if (mStart >= 360) {
					mStart -= 360;
				}
				mBigIndex = (mBigIndex + 1) % mOvals.length;
			}
			invalidate();
		}
	}
}


粉色 Style: Paint.Style.FILL  useCenters:false

绿色:Style: Paint.Style.FILL  useCenters:true

紫色:Style: Paint.Style.STROKE  useCenters:false

灰色:Style: Paint.Style.STROKE  useCenters:true

纸张与塑料实例分割数据集 一、基础信息 • 数据集名称:纸张与塑料实例分割数据集 • 图片数量: 训练集:5304张图片 验证集:440张图片 总计:5744张图片 • 训练集:5304张图片 • 验证集:440张图片 • 总计:5744张图片 • 分类类别: 纸张(paper):常见的可回收材料,广泛用于包装和日常用品。 塑料(plastic):合成聚合物材料,在垃圾处理和回收中需准确识别。 • 纸张(paper):常见的可回收材料,广泛用于包装和日常用品。 • 塑料(plastic):合成聚合物材料,在垃圾处理和回收中需准确识别。 • 标注格式:YOLO格式,包含实例分割多边形标注,适用于实例分割任务。 • 数据格式:图片数据来源于相关领域,标注精确,支持模型训练。 二、适用场景 • 垃圾自动分类系统开发:数据集支持实例分割任务,帮助构建能够精确分割纸张和塑料物体的AI模型,用于智能垃圾桶、回收设施或环境监测系统。 • 环境监测与保护应用:集成至环保监控平台,实时检测和分类垃圾,促进垃圾分类、回收和可持续发展。 • 学术研究与创新:支持计算机视觉与环保领域的交叉研究,为垃圾识别和材料分类提供数据基础,推动AI在环境科学中的应用。 • 工业自动化与物流:在制造业或物流环节中,用于自动化检测和分类材料,提升生产效率和资源管理。 三、数据集优势 • 精准标注与实用性:每张图片均经过仔细标注,实例分割边界精确,确保模型能够学习纸张和塑料的细粒度特征。 • 数据多样性:涵盖多种场景和条件,提升模型在不同环境下的泛化能力和鲁棒性。 • 任务适配性强:标注兼容主流深度学习框架(如YOLO等),可直接用于实例分割模型训练,并支持扩展至其他视觉任务。 • 应用价值突出:专注于可回收材料检测,为垃圾管理、环保政策和自动化系统提供可靠数据支撑,助力绿色科技发展。
代码转载自:https://pan.quark.cn/s/fc36d9cf1917 《建筑工程施工强制性条文检查记录》是针对建筑工程施工过程中的核心环节进行合规性审核的关键性文件,其目的在于保障施工质量与施工安全。 这份文件收录了建筑工程施工过程中必须遵守的国家强制性准则、指令和技术规范,对于建筑施工作业单位、监理机构以及相关行政管理部门而言,均构成不可替代的参考资料。 建筑工程施工强制性条文主要涵盖以下几个方面的内容:1. **设计与施工准则**:工程项目的设计需符合国家的建筑设计准则,涵盖结构稳固性、防火性能、抗震性能、环保性能等方面的标准。 在施工作业阶段,必须严格依照设计图纸和施工计划进行,任何变更均需获得设计单位的一致许可。 2. **建筑材料品质**:所有投入使用的建筑材料,例如混凝土、钢筋、砌块等,都必须具备出厂合格证明,并接受第三方检测机构的品质验证。 严禁采用不合格或已过有效期的材料。 3. **施工安全措施**:在施工作业期间必须恪守安全生产准则,设置安全防护装置,例如脚手架、安全网、警示标识等。 施工人员需接受安全知识培训,并使用个人防护用品。 4. **环境管理**:施工作业应控制噪音、粉尘、废弃物等对环境可能造成的负面影响,推行绿色施工理念,采取降尘、防噪、废弃物分类处理等手段。 5. **工程质量监管**:每个施工作业阶段完成后,需实施自检、互检和专项检查,确保每一道工序的合格性。 对于基础工程、主体结构、防水工程等关键部位,应执行严格的验收流程。 6. **工程验收流程**:工程完工后,必须依照国家规范进行验收,涵盖单位工程验收、分部工程验收和整体工程验收,确保工程符合设计和使用需求。 7. **文档管理**:施工作业期间产生的技术文件、检测报告、会议记...
源码地址: https://pan.quark.cn/s/4916495967e3 在Android应用程序开发中,SharedPreferences(通常缩写为SP)是一种轻量级的数据存储解决方案,用于保存应用程序的简单配置信息,包括布尔值、整数、浮点数以及字符串等类型的数据。 SP基于XML文件格式,其存储位置位于设备的沙盒目录下,并且每个应用程序都拥有独立的SP文件,确保了应用间的数据隔离。 在某些使用场景下,可能会出现这样的情况:尽管数据已经成功保存在`SharedPreferences`中,但由于进程遭遇异常终止(例如系统强制关闭或通过内存清理工具触发),导致数据出现丢失或无法访问的问题。 本文旨在详细剖析这一现象,并提供相应的解决方法。 **问题的深入分析:**1. **进程终止的情况**:Android操作系统为了有效管理系统资源,可能会在特定条件下(比如内存资源紧张时)终止后台运行的应用进程。 一旦应用进程被终止,该进程内正在执行的所有任务,包括正在进行中的SP写入操作,都将被立即中断。 2. **非原子性写入操作**:`SharedPreferences.Editor`类提供的`commit()`或`apply()`方法并不具备原子性特征。 这意味着,如果在进程被终止之前,写入操作未能完整执行,那么数据可能无法成功持久化到磁盘存储中。 3. **异步操作的挑战**:`apply()`方法是一种异步操作,它会在后台线程中执行,且不保证立即将数据写入文件系统。 因此,如果在执行数据保存操作后紧接着进程被终止,那么所保存的数据可能还处于未写入状态。 **针对该问题的解决方案:**1. **优先选用`apply()`方法**:尽管`commit()`和`apply()`...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值