2025年Android 撕衣服(刮刮乐游戏)

Android 撕衣服(刮刮乐游戏)项目简单介绍 该项目为撕衣服 相似刮刮乐游戏 具体介绍 用户启动项目后 载入一张图片 当用户点击图片的时候 点击的一片区域就会消失 从而显示出在这张图片以下的图片 这个小游戏相似与刮奖一样 刮开涂层就会显示文字 这里则是撕掉美女身上的衣服 漏出里面的图片

大家好,我是讯享网,很高兴认识大家。

项目简单介绍:

  该项目为撕衣服,相似刮刮乐游戏

具体介绍:


讯享网

该应用涉及到的知识有:

  • 1.怎样实现绘图功能
  • 2.怎样把像素点变为透明色
  • 3.怎样监听手机对屏幕的操作
       主要有触击,滑动。离开三种情况

注意:

  • 1.一定要注意在设置像素点的时候,范围不能超过当前控件的范围
  • 2.设置ImageView最好设置为wrap_content,假设设置为match_parent。可能导致图片旁边留白。影响定位
      比如:假设图片宽距离ImageView组件为20dp(即图片两遍的留白为20dp),当手指移动到(36,0)位置时候。依据该题代码。能够计算出:
      实际上是把以(16,0)为圆心,半径为8的圆形区域的像素点颜色变为透明色,而不是(36,0)附近

步骤:

1.创建一个android的项目。编写activity_main.xml文件的代码:

<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" 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="hhh.exercise.smultimedia_d.MainActivity" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/aneiyi" /> <ImageView android:id="@+id/iv" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RelativeLayout>

讯享网

这里实际上就是创建两个ImageView控件,而且两个控件重叠在一起,界面例如以下所看到的:

这里写图片描写叙述

2.编写MainActivity代码:

讯享网import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Matrix; import android.graphics.Paint; import android.os.Bundle; 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; private Bitmap bmCopy; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); iv = (ImageView) findViewById(R.id.iv); // 创建仅仅读的Bitmap对象 Bitmap bmSrc = BitmapFactory.decodeResource(getResources(), R.drawable.awaiyi); bmCopy = Bitmap.createBitmap(bmSrc.getWidth(), bmSrc.getHeight(), bmSrc.getConfig()); // 创建Paint对象 Paint paint = new Paint(); // 创建Canvas对象 Canvas canvas = new Canvas(bmCopy); // 開始绘画 canvas.drawBitmap(bmSrc, new Matrix(), paint); // 载入最外层图片 iv.setImageBitmap(bmCopy); // 设置触摸侦听 iv.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_MOVE: // 获取当前手指所在的坐标 int x = (int) event.getX(); int y = (int) event.getY(); // 取当前坐标的一片区域(这里以点钱坐标为原点,半径为5的做一个圆形区域) int r = 8; for (int i = -r; i <= r; i++) { for (int j = -r; j <= r; j++) { if (Math.sqrt(i*i+ j*j) <= r) { // 推断当前区域的点是否在ImageView控件范围内,在就运行以下操作。不在就什么也不做 if (x + i < bmCopy.getWidth() && x + i > 0 && y + j < bmCopy.getHeight() && y + j > 0) { // 把用户划过的坐标点的像素设为透明色 bmCopy.setPixel(x + i, y + j, Color.TRANSPARENT); // 将图片显示在界面上 iv.setImageBitmap(bmCopy); } } } } } return true; } }); } } 

最后。部署后,随便点几下屏幕。效果就是这样:
这里写图片描写叙述

小讯
上一篇 2025-04-10 19:58
下一篇 2025-01-28 07:02

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/27433.html