昨天网上,跟哥们讨论起点击屏幕破碎的效果,今天索性就拿出时间整理一下,很简单奥,

基本思路:

1. 自定义一个View,用于展示这个破碎的的效果

2.在activity中加入这个view,通过setContentView(view);

3.注意要把activity的theme设置成 android:theme="@android:style/Theme.Translucent.NoTitleBar"  ,这样玩起来会更有效果。

首先重写一个view,我们就叫CustomeView吧。自己随便定义就好。

定义构造函数 如下:

public CustomView(Context context, AttributeSet attrs) {

super(context);

this.setKeepScreenOn(true);

this.setFocusable(true);

this.setLongClickable(true);

this.mSoundPool = new SoundPool(5, AudioManager.STREAM_SYSTEM, 5);

this.mSoundMap.put(1, mSoundPool.load(context, R.raw.cfokwowbfv, 1));

this.mBitmap = BitmapFactory.decodeResource(getResources(),

R.drawable.screen);

mXPointList = new ArrayList();

mYPointList = new ArrayList();

}

在这里声明了一个声音池(用于点击屏幕时,发出破碎的逼真效果),一个bitmap,用于显示屏幕破碎

在就是两个list分别是mXPointList和mYPointList,用于保存点击时x和y的点。

接着,我们看一下OntouchEvent()

@Override

public boolean onTouchEvent(MotionEvent arg1) {

// TODO Auto-generated method stub

switch (arg1.getAction()) {

case MotionEvent.ACTION_DOWN:

playSound();//发声

mXPointList.add(arg1.getX());

mYPointList.add(arg1.getY());

postInvalidate();//刷新界面

mCount++;//点击的个数,其中,mLength是总个数

if (mCount > mLength) {

mXPointList.remove(0);

mYPointList.remove(0);

mLength++;

}

break;

case MotionEvent.ACTION_UP:

break;

case MotionEvent.ACTION_MOVE:

break;

default:

break;

}

return super.onTouchEvent(arg1);

}

大家可以参照我写的注释,一看就明白

最后是onDraw()方法,此方法尤为重要。

@Override

protected void onDraw(Canvas canvas) {

super.onDraw(canvas);

for (int i = 0; i < mXPointList.size(); ++i) {//点了多少次,就把破碎的图片显示多少次

canvas.drawBitmap(mBitmap, mXPointList.get(i) - mBitmap.getWidth()

/ 2, mYPointList.get(i) - mBitmap.getHeight() / 2, null);

}

}

然后在要引用的activity中的oncreate方法中进行如下设置:

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

CustomView view = new CustomView(this, null);

setContentView(view);

}

另外,不要忘了在mainfest文件中加上

android:name=".ScreenCrashMainActivity"

android:theme="@android:style/Theme.Translucent.NoTitleBar"

android:label="@string/app_name" >

效果更逼真。嘻嘻。好了,打完收工!

原文:http://blog.csdn.net/haorantiangang/article/details/43987965

android 碎屏功能,android中关于点击屏幕,实现破碎的效果的实现相关推荐

  1. android 碎屏功能,如何从碎屏的Android手机中恢复数据

    现在是智能设备的时代,如Android手机,Windows手机,黑莓还是iPhone,虽然这些智能手机具有引人注目的功能,但它们需要小心处理,因为任何小的损坏都可能导致数据丢失.可能以各种形式对智能手 ...

  2. android 滑屏功能,Android 滑屏效果实现方式汇总

    Android的滑屏,最近在研究这个东西,发现新浪微博的客户端.腾讯微博的客户端都有这个功能.目前到今天为止,腾讯和微博的客户端都是使用viewPager控件写的,可能重写了一些地方.而腾讯老版本的q ...

  3. Android分屏功能,适配及相关问题

    Android Developers-开发-API指南-用户界面-多窗口支持: https://developer.android.google.cn/guide/topics/ui/multi-wi ...

  4. android 本地提醒功能,android中的本地定时推送到通知栏

    一.使用系统定义的Notification 以下是使用示例代码: import android.app.Notification; import android.app.NotificationMan ...

  5. android截屏功能实现方式汇总【包括后台截屏】

    前言 对于android实现截屏功能,简单讲述一下可行的方法和之间的利弊 使用canvas View v = getWindow().getDecorView(); Bitmap bitmap = B ...

  6. android 手机录屏功能,Android录屏功能的实现

    最近做一个Android开发的项目用到了录屏的功能,开始查阅了一些资料和博客,基本上都是在讨论ROOT的.直到后来在github上看到一个比较新的代码,才恍然发现,Android 5.0时候开放了一个 ...

  7. Android 录屏功能的实现

    最近开发中,要实现录屏功能,查阅相关资料,发现调用 MediaProjectionManager的api 实现录屏功能即可: import android.Manifest; import andro ...

  8. android录屏功能

    思路 android实现录屏功能有两种方案,一种是直接使用android自带的MediaProjectionManager实现录屏功能,第二种是是只录语音,用户的操作通过某种方式进行记录保存,最后通过 ...

  9. 如何调用android录屏功能吗,Android录屏功能的实现

    最近做一个Android开发的项目用到了录屏的功能,开始查阅了一些资料和博客,基本上都是在讨论ROOT的.直到后来在github上看到一个比较新的代码,才恍然发现,Android 5.0时候开放了一个 ...

最新文章

  1. r-route 命令 显示/配置ip路由表
  2. 六、继续学习Java的位运算符,发现真的简单
  3. Spring Boot配置@spring.profiles.active配置
  4. cvc 降噪_蓝牙耳机“底噪”、“主动降噪”和“CVC降噪”有什么不同
  5. 高效开发者是如何个性化VS Code插件与配置的?
  6. C语言之字符串探究(五):N系列字符串函数——strncpy、strncat、strncmp
  7. Windows下安装Redmine
  8. 微软拿 480 亿买 GitHub 就为了拥抱开源?
  9. python修改pip源脚本_修改python的pip源为国内源
  10. 2018年全国多校算法寒假训练营练习比赛(第一场)D. N阶汉诺塔变形(找规律)
  11. WinForm------如何修改PanelControl控件背景色
  12. Linux电源管理(五)thermal【转】
  13. Python期末大作业 —— 射靶
  14. 基于Lae的ffmpeg播放器
  15. 智慧金融系统软件需求规格说明(3.20终版)
  16. 袁萌:收到南京大学录取通知书的那一瞬间
  17. Inno Setup汉化方法
  18. 【05】2.1 程序语言特征
  19. 双11前夕,阿里启用机房巡检机器人、京东加了2000+台服务器!这下你们可以放心剁手了...
  20. CC2640R2F之central程序讲解(上)

热门文章

  1. 12月21日云栖精选夜读 | 推荐:一款分布式的对象存储服务
  2. DXT 图片压缩(DXTC/DirectX Texture Compression Overview)
  3. Proteus使用教程详细入门版(适用于 MCS-51等)
  4. 耶鲁大学公开课:博弈论第九节(笔记)
  5. c语言扩散,可扩散列--可扩散列头文件C语言
  6. dnf剑魂buff等级上限_DNF5.8新版buff换装提升整理以及装备选择,防止弯路
  7. 湖南云畅网络科技有限公司携手伙伴,共筑长三角数字经济产业新高地
  8. The Kouga Ninja Scrolls(2018沈阳现场E+切比雪夫距离+线段树维护最大次大最小次小)
  9. L1-064 估值一亿的AI核心代码(C++)
  10. AoA-ToF(信号到达角-飞行时间)联合估计详解