android 碎屏功能,android中关于点击屏幕,实现破碎的效果的实现
昨天网上,跟哥们讨论起点击屏幕破碎的效果,今天索性就拿出时间整理一下,很简单奥,
基本思路:
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中关于点击屏幕,实现破碎的效果的实现相关推荐
- android 碎屏功能,如何从碎屏的Android手机中恢复数据
现在是智能设备的时代,如Android手机,Windows手机,黑莓还是iPhone,虽然这些智能手机具有引人注目的功能,但它们需要小心处理,因为任何小的损坏都可能导致数据丢失.可能以各种形式对智能手 ...
- android 滑屏功能,Android 滑屏效果实现方式汇总
Android的滑屏,最近在研究这个东西,发现新浪微博的客户端.腾讯微博的客户端都有这个功能.目前到今天为止,腾讯和微博的客户端都是使用viewPager控件写的,可能重写了一些地方.而腾讯老版本的q ...
- Android分屏功能,适配及相关问题
Android Developers-开发-API指南-用户界面-多窗口支持: https://developer.android.google.cn/guide/topics/ui/multi-wi ...
- android 本地提醒功能,android中的本地定时推送到通知栏
一.使用系统定义的Notification 以下是使用示例代码: import android.app.Notification; import android.app.NotificationMan ...
- android截屏功能实现方式汇总【包括后台截屏】
前言 对于android实现截屏功能,简单讲述一下可行的方法和之间的利弊 使用canvas View v = getWindow().getDecorView(); Bitmap bitmap = B ...
- android 手机录屏功能,Android录屏功能的实现
最近做一个Android开发的项目用到了录屏的功能,开始查阅了一些资料和博客,基本上都是在讨论ROOT的.直到后来在github上看到一个比较新的代码,才恍然发现,Android 5.0时候开放了一个 ...
- Android 录屏功能的实现
最近开发中,要实现录屏功能,查阅相关资料,发现调用 MediaProjectionManager的api 实现录屏功能即可: import android.Manifest; import andro ...
- android录屏功能
思路 android实现录屏功能有两种方案,一种是直接使用android自带的MediaProjectionManager实现录屏功能,第二种是是只录语音,用户的操作通过某种方式进行记录保存,最后通过 ...
- 如何调用android录屏功能吗,Android录屏功能的实现
最近做一个Android开发的项目用到了录屏的功能,开始查阅了一些资料和博客,基本上都是在讨论ROOT的.直到后来在github上看到一个比较新的代码,才恍然发现,Android 5.0时候开放了一个 ...
最新文章
- MATLAB常用函数, 常见问题
- 转-D3D中的四元数
- 【深度学习】实战深度学习检测疟疾
- 市面上主流的TCC框架介绍
- SAP S/4HANA key user tool extensibility原理
- Oracle online系列(上):Online Move Datafile
- 程序员:“我放弃了年薪 20 万的 Offer” 你知道为什么吗?
- 微信小程序实现语音识别功能
- 如何录制游戏视频中的音频
- word把选择答案弄到题目里_将Word解答中的答案项批量填入题干
- Uncaught TypeError: Cannot read property 'alpha' of undefined 报错解决
- “反悔”贪心 烤鸡翅
- 什么是DC,以及CreateCompatibleDC,CreateCompatibleBitmap,SelectObject的作用
- 中级认证宝典【全理论】
- 如何优化我的世界服务器,我的世界服务器怎么优化 服务器优化建议
- 【面试题4】谈谈以前端角度出发做好SEO需要考虑什么?
- 老男孩脱产班Linux运维51期
- 苹果id界面无法打开解决方法「iphone技巧」
- 机器学习 基础理论 学习笔记 (6)异常值检测和处理
- NGS测序嵌合体是个需要去除的错误扩增序列