【Android】刮刮卡实例
2016-06-10 21:36
423 查看
前言
日常生活中,抽奖是我们都接触过的一项活动,刚开始的时候是实体的刮刮卡。后来智能手机上也能刮一刮了。在Android系统要实现刮刮卡的效果,需要用到Bitmap/Matrix/Canvas等类。下面展示代码和效果图。
刮刮卡布局文件的代码:
刮刮卡中MainActivity中代码:
刮刮卡的效果图:
日常生活中,抽奖是我们都接触过的一项活动,刚开始的时候是实体的刮刮卡。后来智能手机上也能刮一刮了。在Android系统要实现刮刮卡的效果,需要用到Bitmap/Matrix/Canvas等类。下面展示代码和效果图。
刮刮卡布局文件的代码:
<span style="font-size:18px;"><TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="二等奖" android:textSize="40dp" android:textColor="@android:color/holo_purple" /> <ImageView android:id="@+id/imgv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true"</span> <span style="font-size:18px;">android:layout_centerVertical="true" /></span>
刮刮卡中MainActivity中代码:
public class MainActivity extends Activity {<span style="font-size:18px;"> private ImageView mImageView; private Bitmap alterbitmap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mImageView = (ImageView) findViewById(R.id.imgv); //从界面获取ImageView控件 //从资源文件中解析一张bitmap Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.k_t); alterbitmap = Bitmap.createBitmap(bitmap.getWidth(),bitmap.getHeight(),bitmap.getConfig()); //创建一个canvas对象 Canvas canvas = new Canvas(alterbitmap); //创建画笔对象 Paint paint = new Paint(); //为画笔设置颜色 paint.setColor(Color.BLACK); paint.setAntiAlias(true); //创建Matrix对象 Matrix matrix = new Matrix(); //在alterbitmap上画图 canvas.drawBitmap(bitmap, matrix, paint); //设置ImageView的背景 mImageView.setImageBitmap(alterbitmap); //为ImageView设置监听 mImageView.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { try { switch (event.getAction()){ case MotionEvent.ACTION_DOWN: Toast.makeText(MainActivity.this, "手指触下", 0).show(); break; case MotionEvent.ACTION_MOVE: Toast.makeText(MainActivity.this,"手指移动("+event.getX()+","+event.getY()+")",0).show(); int x = (int) event.getX(); int y = (int) event.getY(); for (int i= -10;i<10;i++){ for(int j=-10;j<10;j++){ //将区域类的像素点设为透明像素 if (Math.sqrt((i*i)+(j*j))<=10){ alterbitmap.setPixel(x+i, y+j,Color.TRANSPARENT); } } } mImageView.setImageBitmap(alterbitmap); break; case MotionEvent.ACTION_UP: Toast.makeText(MainActivity.this, "手指松开", 0).show(); break; } } catch (Exception e){ e.printStackTrace(); } return true; //消费掉该触摸事件 } }); }</span>
刮刮卡的效果图:
相关文章推荐
- Activity之间传递数据方式
- android activity知识总结
- Android Studio教程(六)之AS插件
- Android Studio教程(五)之Gradle
- Android开发环境搭建的窍门以及难点解决
- Android 关于 OnScrollListener 事件顺序次数的简要分析
- Android Studio 标题栏消失
- android中布局文件中所需的RGB颜色对照表
- 实现Activity和Service通信的几种方案
- Android shape属性
- Android 屏幕保持常亮
- Android textview设置不同的颜色和大小
- Android尺子
- Android listview加载不同布局与adapter用法
- java/android 设计模式学习笔记(8)---桥接模式
- (转载)Android模拟器-Genymotion的下载和添加Android虚拟系统
- Android Studio示例项目
- Android JNI开发之使用Lame将录音转MP3
- 安卓手机蓝牙控制智能小车 android程序设计
- Android Handler 机制