当前位置: 首页 > article >正文

安卓应用《撕掉她的衣服》简化版

首先是activity_main.xml文件

<FrameLayout 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"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity" ><ImageViewandroid:id="@+id/iv_after"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/hello_world" /><ImageViewandroid:id="@+id/iv_pre"android:layout_width="wrap_content"android:layout_height="wrap_content"/></FrameLayout>

接下来就是MainActivity.java文件

package com.csdn.gril;import android.os.Bundle;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.BitmapFactory.Options;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.util.Log;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageView;public class MainActivity extends Activity {private ImageView iv_after;private ImageView iv_before;private Bitmap alterBitmap;private Canvas canvas;private Paint paint;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);BitmapFactory.Options opts = new Options();opts.inSampleSize = 2;iv_after = (ImageView) findViewById(R.id.iv_after);iv_before = (ImageView) findViewById(R.id.iv_pre);Bitmap after = BitmapFactory.decodeResource(getResources(),R.drawable.after, opts);// 只读图片Bitmap before = BitmapFactory.decodeResource(getResources(),R.drawable.pre, opts);// 可以修改的空白的bitmapalterBitmap = Bitmap.createBitmap(before.getWidth(), before.getHeight(),before.getConfig());canvas = new Canvas(alterBitmap);paint = new Paint();paint.setStrokeWidth(5);paint.setColor(Color.BLACK);canvas.drawBitmap(before, new Matrix(), paint);iv_after.setImageBitmap(after);iv_before.setImageBitmap(alterBitmap);iv_before.setOnTouchListener(new OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_DOWN:break;case MotionEvent.ACTION_MOVE:Log.i("xx", "move!");int newX = (int) event.getX();int newY = (int) event.getY();for (int i = -10; i < 5; i++) {for (int j = -10; j < 5; j++) {alterBitmap.setPixel(i+newX, j+newY, Color.TRANSPARENT);}}iv_before.setImageBitmap(alterBitmap);break;}return true;}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}

操作前:


操作后:


http://www.lryc.cn/news/2413689.html

相关文章:

  • 新手唱歌从入门到精通,经典唱歌教程系列合集
  • 木马病毒表现手机中病毒/木马病毒对手机有用吗-手把手教白帽子自学
  • 解决笔记本电脑开机密码遗忘的几种方案,帮你轻松解除
  • 探索未来编程的新纪元:Eve语言
  • Windows Server 2003 Service Pack 2 安装和部署指南
  • sem_wait
  • 多进程和多线程
  • 全面解析msvcr100.dll丢失的5种解决方法,快速解决dll丢失问题
  • Linux嵌入式定义四个缓存区,Linux文件缓冲区详解
  • Linux服务器本地POST接口测试
  • 【正点原子FPGA连载】第二十章IP核之FIFO实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1
  • _beginthreadex 和 _beginthread 的区别
  • 在java中调用weka聚类方法并显示相应的类标签+weka中创建arff数据
  • 企业安全意识必修课——修改远程桌面登录端口避免恶意扫描入侵
  • JSP | 简易购物车的实现
  • HTC (Desire V)T328W ROOT 教程 及关闭充电动画
  • 传奇单机版就是自己在家里架设一个
  • 基于SpringBoot+Vue酒店订房系统的设计与实现
  • 关于代理服务器的原理及用法
  • svn找不到节点_章泽天公园甩鞭抽陀螺,现场图曝光:生活不易,全靠自己找乐趣...
  • BUCK电路工作原理以及参数设计
  • 这篇文章带你了解一下WAP建站。
  • Scala 的那些奇怪的符号 (一)
  • 用户行为分析的背景以及几种模型分析、实例分析——淘宝用户行为分析
  • ASP进行数据库查询时SQL语句的几种特殊用法
  • 在线网址URL生成二维码的API接口
  • 一个Springboot项目页面中CSS,JS文件加载失败的问题
  • 包括遗传算法在内的现代优化算法简介
  • 从零开始的Android学习之路:一、AndroidStudio的安装以及安卓开发环境的配置
  • 开源项目 `blog` 使用教程