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

基本思路:

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. MATLAB常用函数, 常见问题
  2. 转-D3D中的四元数
  3. 【深度学习】实战深度学习检测疟疾
  4. 市面上主流的TCC框架介绍
  5. SAP S/4HANA key user tool extensibility原理
  6. Oracle online系列(上):Online Move Datafile
  7. 程序员:“我放弃了年薪 20 万的 Offer” 你知道为什么吗?
  8. 微信小程序实现语音识别功能
  9. 如何录制游戏视频中的音频
  10. word把选择答案弄到题目里_将Word解答中的答案项批量填入题干
  11. Uncaught TypeError: Cannot read property 'alpha' of undefined 报错解决
  12. “反悔”贪心 烤鸡翅
  13. 什么是DC,以及CreateCompatibleDC,CreateCompatibleBitmap,SelectObject的作用
  14. 中级认证宝典【全理论】
  15. 如何优化我的世界服务器,我的世界服务器怎么优化 服务器优化建议
  16. 【面试题4】谈谈以前端角度出发做好SEO需要考虑什么?
  17. 老男孩脱产班Linux运维51期
  18. 苹果id界面无法打开解决方法「iphone技巧」
  19. 机器学习 基础理论 学习笔记 (6)异常值检测和处理
  20. NGS测序嵌合体是个需要去除的错误扩增序列

热门文章

  1. 6步骤实现CentOS系统环境精简优化
  2. 持续盈利的乐享互动谋变:电商相关业务猛增,与巨头相比差距甚远
  3. 误删桌面文件如何恢复?
  4. 电商用户行为数据分析
  5. [激光原理与应用-23]:《激光原理与技术》-9- 激光产生技术-锁模技术
  6. Hi,你想要的在线创建架构图都在这儿!(四)
  7. 玩转低代码-CSS介绍
  8. 服装管理系统软件功能说明书
  9. 揭秘Pinterest模式生态:半年涌10家受困内容(转)
  10. Filecoin投资者自白:我承认含有赌的成分