i
nt startX;//声明startX变量

int startY;//声明startY变量

int width;//声明width变量

int height;//声明height变量

int num;//声明num变量

Matrix matrix;//使用矩阵控制图片移动、缩放、旋转

ImageResource imageRes;//声明ImageResource类

public ShowGirlView(Context context, int width, int height, int num) {//构造方法

super(context);

this.width = width;

this.height = height;

this.num = num;

init();

}

public ShowGirlView(Context context, AttributeSet attrs, int width, int height, int num) {//构造方法

super(context, attrs);

this.width = width;

this.height = height;

this.num = num;

init();

}

void init() {

imageRes = ImageResource.getImageResource();//实例化 ImageResource类

fore_bitmap = imageRes.getForeBitmap(getResources(), num);//实例化Bitmap类 temp_bitmap

back_bitmap = imageRes.getBackBitmap(getResources(), num);//实例化Bitmap类 back_bitmap

new_bitmap = Bitmap.createBitmap(width, height, Config.ARGB_8888);//创建一个位图 ARGB_8888 代表32位ARGB位图

paint = new Paint();//实例化paint类 画笔类

paint.setAntiAlias(true);//设置画笔的锯齿效果

paint.setDither(true); //防抖动

mCanvas = new Canvas(new_bitmap);//实例化 画布 fore_bitmap类当参数

mCanvas.drawColor(Color.TRANSPARENT);//设置画布颜色为透明

matrix = new Matrix();

//缩放  它采用两个浮点数作为参数,分别表示在每个轴上所产生的缩放量。第一个参数是x轴的缩放比例,而第二个参数是y轴的缩放比例。

matrix.setScale(width * 1.0f / fore_bitmap.getWidth(), height * 1.0f / fore_bitmap.getHeight());

mCanvas.drawBitmap(fore_bitmap, matrix, paint);//绘制图像

fore_bitmap.recycle();//回收

paint.setColor(Color.RED);//设置画笔颜色

paint.setStrokeWidth(20);//设置描边宽度

BlurMaskFilter bmf = new BlurMaskFilter(10, BlurMaskFilter.Blur.NORMAL);//指定了一个模糊的样式和半径来处理Paint的边缘。

paint. setMaskFilter(bmf);//为Paint分配边缘效果。

paint.setStyle(Paint.Style.STROKE);//让画出的图形是空心的

paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_OUT));//它的作用是用此画笔后,画笔划过的痕迹就变成透明色了。画笔设置好了后,就可以调用该画笔进行橡皮痕迹的绘制了

paint.setStrokeJoin(Paint.Join.ROUND);//设置结合处的样子 Miter:结合处为锐角, Round:结合处为圆弧:BEVEL:结合处为直线。

paint.setStrokeCap(Paint.Cap.SQUARE);//画笔笔刷类型   方形形状

path = new Path();//实例化画图类

}

protected void onDraw(Canvas canvas) {

super.onDraw(canvas);

canvas.drawBitmap(back_bitmap, matrix, null);//绘制图像

canvas.drawBitmap(new_bitmap, 0, 0, null);//绘制图像

}

public boolean onTouchEvent(MotionEvent event) {

int x = (int) event.getX();//获得触摸的X轴位置

int y = (int) event.getY();//获得触摸的Y轴位置

int position = event.getAction();//获得的返回值 获取触控动作比如ACTION_DOWN

int endX = 0;//声明变量endX

int endY = 0;//声明变量endY

switch (position){

case MotionEvent.ACTION_DOWN://当触摸时按下时
回值 获取触控动作比如ACTION_DOWN

int endX = 0;//声明变量endX

int endY = 0;//声明变量endY

switch (position){

case MotionEvent.ACTION_DOWN://当触摸时按下时

android撕衣服应用介绍,android驱动开发书籍推荐相关推荐

  1. android撕衣服应用介绍,Android开发基础面试题

    super(context, attrs); this.width = width; this.height = height; this.num = num; init(); } void init ...

  2. Android开发书籍推荐:从入门到精通系列学习路线书籍介绍

    很多时候我们都会不断收到新手的提问"Android开发的经典入门教材和学习路线?"."Android 开发入门教程有哪些推荐?"等类似的问题,我们不断重复回答这 ...

  3. Android开发书籍推荐 学习路线图 资料汇整

    小编注:最近,小编们一直在收集,整理一些针对包括程序员.运营.设计师等在内的系统学习资料,希望给初学者一些参考,也给已经入门的人一些进阶建议,让知识体系更加系统化.当然,这个工作不可能一蹴而就,也相当 ...

  4. Windows驱动开发书籍简介

    分享到 一键分享 QQ空间 新浪微博 百度搜藏 人人网 腾讯微博 百度相册 开心网 腾讯朋友 百度贴吧 豆瓣网 搜狐微博 百度新首页 QQ好友 和讯微博 更多... 百度分享 首页 我的主页 相册 广 ...

  5. LINUX嵌入式开发书籍推荐(附WINCE部分)

    LINUX嵌入式开发书籍推荐(附WINCE部分) LINUX嵌入式开发书籍推荐(附WINCE部分) 一,编程语言部分 1,C语言 <C语言大全(第四版)> 市场价 :¥48.00 [原 书 ...

  6. 9G-LINUX嵌入式开发书籍推荐(附WINCE部分)

    9G-LINUX嵌入式开发书籍推荐(附WINCE部分) 2008-08-13 17:06:50|  分类: 开发笔记|字号订阅 一,编程语言部分 1,C语言  <C语言大全(第四版)>   ...

  7. android 撕衣服,Android初体验之撕衣服项目

    一.准备工作 start 一个新的安卓工程 --->选择Empty Activity----->给工程起一个名字叫tearcloth ------->选择Java语言-------- ...

  8. 【Android底层学习总结】1. 驱动开发基础

    0 目录 1 前言 2 驱动开发认识 2.1 驱动 2.1.1 设备驱动程序的主要功能 2.1.2 驱动程序的主要类型 2.1.3 设备文件 2.1.4 sys文件系统: 3 基础编程 3.1 内核模 ...

  9. Android 撕衣服(刮刮乐游戏)

    项目简单介绍: 该项目为撕衣服,相似刮刮乐游戏 具体介绍: 用户启动项目后.载入一张图片,当用户点击图片的时候,点击的一片区域就会消失.从而显示出在这张图片以下的图片 这个小游戏相似与刮奖一样,刮开涂 ...

最新文章

  1. hadoop启动_Mac OS X 上搭建 Hadoop 开发环境指南
  2. wex5 转换 html5,WeX5开发工具(html5 app开发框架)V3.9 开源版
  3. protoc-3.2.0-win32转java文件
  4. c# 调matlab传字符串_C# Matlab 相互调用
  5. Shell中的if判断
  6. 如何在Debian上安装配置ownCloud
  7. 为什么软件测试容易被小看,做软件测试容易忽视的问题
  8. Flex创建弹出菜单(PopUpButton/Menu/PopMenuButton)
  9. 微信开放平台和微信公众平台配置流程简介,
  10. ajax 更新局部视图,使用Ajax局部更新Razor页面的实例代码
  11. pvs linux_Linux下用于C ++开发的PVS-Studio静态分析器入门
  12. 通过vdi备份linux,centos/ubuntu挂载vmdk、 vdi为块设备的方法(非vdfuse)
  13. bzoj1050: [HAOI2006]旅行comf
  14. Android定制属于你自己的导航栏
  15. 深信服 2019校园招聘 研发试卷-2018.09.21
  16. 数据分析技术:时间序列分析的AR/MA/ARMA/ARIMA模型体系
  17. linux网络安装pxe及无人值守安装
  18. 哔哩哔哩视频合并 B站缓存视频合并 安卓版 音视频合并 基于ffmpeg
  19. 2048经典版震撼来袭,多种游戏模式,三种布局,来迎接挑战吧!
  20. 1.9 信息系统规划

热门文章

  1. public class 和class 的区别
  2. 为什么现在还有985高校给大一上C语言课?
  3. XCode8新的功能
  4. python 调用百度地图api 实现批量经纬度转换为实际省市地点(api调用,json解析,mysql读取与写入)
  5. 关于Cordova iOS 工程极光推送通知自定义声音的设置
  6. 我的知识和我的动力,来自哪里?
  7. Soul API 网关源码学习《二》
  8. 去哪儿 爬虫 pre
  9. 杰理之唤醒源获取【篇】
  10. NodeMCU文档中文翻译 5 上传代码