文档章节

android开发笔记之多媒体—撕衣服(开心一下)

Mr_Nice
 Mr_Nice
发布于 2016/05/22 19:59
字数 432
阅读 3
收藏 0
点赞 2
评论 0

效果图:

这里写图片描述

看到是不是很激动呢,在这里讲一下原理,其实很简单,就是两张图片叠在一下,当鼠标触摸的时候改变上面那张图片的透明度就可以了。

核心代码:

public class MainActivity extends Activity {

    private ImageView iv;
    private Bitmap baseBitmap,copyBitmap;
    private Canvas canvas;  //画布
    private Paint paint;    //画笔
    private Matrix matrix;  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        iv = (ImageView) findViewById(R.id.iv);
        //拿到上面那找图
        baseBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pre);
        //拿到一张和上面那张图一样大小的纸
        copyBitmap = Bitmap.createBitmap(baseBitmap.getWidth(), baseBitmap.getHeight(), baseBitmap.getConfig());
        //把画纸固定在画布上
        canvas = new  Canvas(copyBitmap);
        //拿到一只画笔
        paint = new Paint();
        //添加处理了规则
        matrix = new Matrix();
        //照着上面那张图画(画一次就好)
        canvas.drawBitmap(baseBitmap, matrix, paint);

        //在imageView所在区域被触摸时回调
        iv.setOnTouchListener(new OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()) {
                //按下(1次)
                case MotionEvent.ACTION_DOWN:
                    break;
                //移动 (0-N次)
                case MotionEvent.ACTION_MOVE:
                    //getX和getY得到的坐标是以控件左上角为原点
                    int moveX = (int)event.getX();
                    int moveY = (int)event.getY();
                    //getRawX和getRawY得到的坐标是以屏幕左上角为原点
// event.getRawX();
// event.getRawY();
                    try {
                        //针对单个像素点去说的(每次触摸改变透明度的像素点太少,扩大范围)
                        for (int i = -20; i < 21; i++) {
                            for (int j = 0; j < 21; j++) {
                                //使其像素变成透明
                                copyBitmap.setPixel(moveX+i, moveY+j, Color.TRANSPARENT);
                            }
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    //显示到ImageView组件上
                    iv.setImageBitmap(copyBitmap);
                    break;
                //抬起 (1次)
                case MotionEvent.ACTION_UP:
                    break;
                default:
                    break;
                }
                //方法被消费了
                return true;
            }
        });
    }
}

布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.briup.siyifu.MainActivity" >

    <ImageView  android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/after" android:layout_centerInParent="true"/>

    <ImageView  android:id="@+id/iv" android:layout_centerInParent="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/pre" />

</RelativeLayout>

© 著作权归作者所有

共有 人打赏支持
Mr_Nice
粉丝 0
博文 47
码字总数 39947
作品 0
广州
Android 第一课——Android架构

声明:本文是学习Android时从《Android 4编程入门经典》摘抄!仅仅是作为复习时查看的笔记! 1 Android是一个linux系统 Android 是一个基于 Linux 的开源的手机操作系统。它可以供任何打算使...

learn_more
2014/12/28
0
0
android自学笔记《四》——应用程序结构分析

昨天在帖子里看到的一个分析方法,很简单,给大家分享下! 呵呵,由于我也是刚开始学习Android,还没有学到下面这些知识,这里就直接截图了。 看完他这个分析之后,我对Android程序有了一个简...

郭子
2012/02/03
0
1
【Android学习总结】之Activity:深入理解、体验Activity的生命周期

【本博客内的文章是本人的学习笔记总结,如有错误请各位批评指正,谢谢!欢迎加入群285077071讨论】 关于Activity的生命周期的学习,我将从以下几个方面入手来全面认识: 一、什么是生命周期...

kinbos
06/26
0
0
Android 源码分析之旅1--系统架构与分析方法、工具

《Android 源码分析之旅》目录 apefwkall.png 《Android 源码分析之旅》的全部目录将作如下安排: 第1章节——本篇文章,将介绍一些基本的概念、方法、工具。 第2章节——着重介绍Binder IP...

猴亮屏
2017/10/19
0
0
Cocos2dx游戏开发系列笔记1:一个崭新的开始,cocos2dx2.2+ndkr9+Cygwin

Android开发者做cocos2dx最大的绊脚石,不是c++,而是环境的搭建... 骨头也是费了半天劲才终于在真机上看到了那个类似猕猴桃的头,这里简单记录一下。 环境:(算比较新了2013.11.17) coco...

懒骨头
2013/12/09
0
0
Cocos2dx游戏开发系列笔记9:android手机上运行《战神传说》,并解决横竖屏即分辨率自适应

上节说到cygwin下成功编译出so文件,下面我们要把游戏运行在android上。 开始干活! 其实步骤可以参考 Cocos2dx游戏开发系列笔记6:怎样让《萝莉快跑》的例子运行在vs和手机上 1 用eclipse打...

懒骨头
2013/12/09
0
0
张高兴的 Xamarin.Android 学习笔记:(一)环境配置

  最近在自学 Xamarin 和 Android ,同时发现国内在做 Xamarin 的不多。我在自学中间遇到了很多问题,而且百度到的很多教程也有些过时,现在打算写点东西稍微总结下,顺便帮后人指指路了。...

张高兴
2017/01/13
0
0
直播,音视频编码器和解码器(EasyDarwin)-Android

使用摄像头采集视频数据,并通过MediaCodec进行H264编码,之后打包成RTSP格式并上传的。 TextuewView也提供了一个setTransform方法,该方法接收一个matrix参数,使用该参数对当前的渲染内容进...

shareus
05/18
0
0
android自学笔记《三》——系统架构分析

下面是Android的系统架构图 翻译后 从上图中可以看出,Android系统架构为4层结构,从上层到下层分别是应用程序层、应用程序框架层、系统运行库层以及Linux内核层,分别介绍如下: 1)应用程序...

郭子
2012/02/03
0
5
Android应用推广策略之推广重点

引言(选自鸟哥笔记app推广干货分享社区www.apper8.com) 每一个应用都很重视两个要点:用户与内容,但在数量日益剧增的应用市场中找到属于自己的地位最需要的是:有效的推广。我经常光顾一家...

apper8
2012/02/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

OSChina 周三乱弹 —— 你被我从 osc 老婆们名单中踢出了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @小鱼丁:分享五月天的单曲《后来的我们 (电影《后来的我们》片名曲)》: 《后来的我们 (电影《后来的我们》片名曲)》- 五月天 手机党少年们想...

小小编辑
10分钟前
3
1
Spring Boot Admin 2.0开箱体验

概述 在我之前的 《Spring Boot应用监控实战》 一文中,讲述了如何利用 Spring Boot Admin 1.5.X 版本来可视化地监控 Spring Boot 应用。说时迟,那时快,现在 Spring Boot Admin 都更新到 ...

CodeSheep
29分钟前
0
0
Python + Selenium + Chrome 使用代理 auth 的用户名密码授权

米扑代理,全球领导的代理品牌,专注代理行业近十年,提供开放、私密、独享代理,并可免费试用 米扑代理官网:https://proxy.mimvp.com 本文示例,是结合米扑代理的私密、独享、开放代理,专...

sunboy2050
今天
0
0
实现异步有哪些方法

有哪些方法可以实现异步呢? 方式一:java 线程池 示例: @Test public final void test_ThreadPool() throws InterruptedException { ScheduledThreadPoolExecutor scheduledThre......

黄威
今天
1
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

六库科技
今天
0
0
牛客网刷题

1. 二维数组中的查找(难度:易) 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入...

大不了敲一辈子代码
今天
0
0
linux系统的任务计划、服务管理

linux任务计划cron 在linux下,有时候要在我们不在的时候执行一项命令,或启动一个脚本,可以使用任务计划cron功能。 任务计划要用crontab命令完成 选项: -u 指定某个用户,不加-u表示当前用...

黄昏残影
昨天
0
0
设计模式:单例模式

单例模式的定义是确保某个类在任何情况下都只有一个实例,并且需要提供一个全局的访问点供调用者访问该实例的一种模式。 实现以上模式基于以下必须遵守的两点: 1.构造方法私有化 2.提供一个...

人觉非常君
昨天
0
0
《Linux Perf Master》Edition 0.4 发布

在线阅读:https://riboseyim.gitbook.io/perf 在线阅读:https://www.gitbook.com/book/riboseyim/linux-perf-master/details 百度网盘【pdf、mobi、ePub】:https://pan.baidu.com/s/1C20T......

RiboseYim
昨天
1
0
conda 换源

https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mir......

阿豪boy
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部