public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 用来显示操作后的图片
final ImageView iv = (ImageView) findViewById(R.id.iv);
//1 获取要操作图片的原图
Bitmap srcBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pre19);
//2 创建一个副本 相当于有一个和原图大小的白纸
final Bitmap alterBitmap = Bitmap.createBitmap(srcBitmap.getWidth(), srcBitmap.getHeight(), srcBitmap.getConfig());
// 创建画笔
Paint paint = new Paint();
// 创建画布 把白纸铺到画布上
Canvas canvas = new Canvas(alterBitmap);
// 开始作画
canvas.drawBitmap(srcBitmap, new Matrix(), paint);
iv.setImageBitmap(alterBitmap);
//3 给vi设置一个触摸事件
iv.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
//4 具体判断一下触摸事件
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE: // 移动事件
for (int i = -20; i < 20; i++) { // 增加x轴坐标
for (int j = -20; j < 20; j++) { // 增加y轴坐标
//为了良好的用户体验 撕一个圆
if (Math.sqrt(i*i + j*j) < 20 &&
0 <= event.getY()+j && 0 <= event.getX()+i &&
event.getX()+i < alterBitmap.getWidth() &&
event.getY()+j < alterBitmap.getHeight()) {
alterBitmap.setPixel((int)event.getX()+i, (int)event.getY()+j, Color.TRANSPARENT);
}
}
}
//更新一下iv
iv.setImageBitmap(alterBitmap);
break;
}
return true;
}
});
}
}
Android 撕.衣.服.
原创
©著作权归作者所有:来自51CTO博客作者可爱小乔乔的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
工作服反光衣AI视频识别系统 CNN
工作服反光衣AI视频识别系统根据智能化视频剖析,工作服反光衣AI视频识别系统全自动剖析和识别视频图像信息内容,不用人工控制,可对建筑工地职工
人工智能 opencv 计算机视觉 神经网络 机器学习 -
AI工衣工服智能识别系统 YOLOv5
AI工衣工服智能识别系统通过深度学习技术,AI工衣工服智能识别系统对工地/工厂现场作业区域进行实时不间断监测,AI工衣工
人工智能 YOLO 神经网络 计算机视觉 ide -
工作服反光衣ai视频识别系统 YOLOv5
工作服反光衣ai视频识别系统在监控摄像头的可视范围内,工作服反光衣ai视频识别系统自动检查工作人员是不是佩戴安全帽
人工智能 YOLO 神经网络 深度学习 cnn -
手撕SVM
序SVM是一种二分类模型,其学习策略为间隔最大化,也等价于“正则化的合页损失函数”最小化。SVM可分为以下三种类型:•
算法 机器学习 支持向量机 人工智能 SVM