Android 水波纹效果实现

简介:

    这个小DEMO是朋友发给小马的,忘了是谁,在这感谢下他, 没有这个DEMO我真不知道安卓水波纹是怎么实现的,这个不多讲了,模拟器中有点卡的样子,大家在真机上试是正常的小马直接上代码,上效果,有需要的朋友下载下附件DEMO就可以了, 里面有些是调用NATIVE库的,希望CPP高手C高手多留言指点指点,放在这,供大家下载学习交流,吼吼,好东西,必须分享,这个DEMO,小马不多讲了,直接写了,原因看注释里面就行的了 效果如下:

主控制类代码如下:

 
 
  1.  
  2. package com.example.plasma;  
  3.  
  4. import android.app.Activity;  
  5. import android.content.Context;  
  6. import android.content.Intent;  
  7. import android.os.Bundle;  
  8. import android.util.AttributeSet;  
  9. import android.view.MotionEvent;  
  10. import android.view.View;  
  11. import android.view.Window;  
  12. import android.graphics.Bitmap;  
  13. import android.graphics.BitmapFactory;  
  14. import android.graphics.Canvas;  
  15. import android.graphics.Color;  
  16.  
  17.  
  18. /**    
  19. * @Title: AnimActivity.java  
  20. * @Package com.example.plasma  
  21. * @Description: 安卓水波纹效果制作学习  
  22. * @author XiaoMa  
  23.  
  24. * 这个小DEMO是朋友发给小马的,忘了是谁,在这感谢下他,  
  25. * 没有这个DEMO我真不知道安卓水波纹是怎么实现的,这个不多讲了,  
  26. * 模拟器中有点卡的样子,大家在真机上试是正常的  
  27. * 小马直接上代码,上效果,有需要的朋友下载下附件DEMO就可以了  
  28. * 里面有些是调用NATIVE库的,希望CPP高手C高手多留言指点指点,  
  29. * 放在这,供大家下载学习交流,吼吼,好东西,必须分享  
  30.  
  31. */ 
  32. public class AnimActivity extends Activity {  
  33.  
  34.     @Override 
  35.     public void onCreate(Bundle savedInstanceState){  
  36.         super.onCreate(savedInstanceState);  
  37.         setContentView(new PlasmaView(this));  
  38. //      this.requestWindowFeature(Window.FEATURE_NO_TITLE);  
  39.     }  
  40.       
  41.       
  42. }  
  43.  
  44. class PlasmaView extends View implements View.OnTouchListener{    
  45.     private Bitmap mBitmap;  
  46.     long time;  
  47.     long fps;  
  48.  
  49.     public PlasmaView(Context context) {  
  50.         super(context);          
  51.         Bitmap bmp = BitmapFactory.decodeResource(this.getResources(),R.drawable.lvzi);  
  52.         mBitmap = Bitmap.createBitmap(bmp.getWidth(), bmp.getHeight(), Bitmap.Config.RGB_565);  
  53.         AnimRender.setBitmap(bmp);  
  54.         this.setOnTouchListener(this);  
  55.     }  
  56.  
  57.     @Override   
  58.     protected void onDraw(Canvas canvas) {  
  59.         long ct = System.currentTimeMillis();  
  60.         if(ct - time > 1000){  
  61.             time = ct;  
  62.             fps = 0;  
  63.         }  
  64.         fps++;        
  65.           
  66.         AnimRender.render(mBitmap);       
  67.         canvas.drawBitmap(mBitmap, 00null);  
  68.         postInvalidate();  
  69.     }  
  70.  
  71.     @Override 
  72.     public boolean onTouch(View v, MotionEvent event) {  
  73.         AnimRender.drop((int)event.getX(), (int)event.getY(), 500);  
  74.         return false;  
  75.     }  
  76. }  
  77.  
  78. class AnimRender{  
  79.     public static native void setBitmap(Bitmap src);  
  80.     public static native void render(Bitmap dst);  
  81.     public static native void drop(int x, int y, int height);  
  82.      
  83.     static {  
  84.         System.loadLibrary("plasma");  
  85.     }  
  86. }  

          最后,代码小马就放在附件里面,有需要的朋友可下载学习下,在此感谢发我这人小DEMO的朋友,特此感谢!谢谢...





     本文转自华华世界 51CTO博客,原文链接:http://blog.51cto.com/mzh3344258/808842,如需转载请自行联系原作者




目录
打赏
0
0
0
0
347
分享
相关文章
flutter中实现仿Android端的onResume和onPause方法
flutter中实现仿Android端的onResume和onPause方法
Android 按钮实现按压水波纹效果
Android 按钮实现按压水波纹效果
327 0
java 实现读取txt文件,反射创建对象,android 手机缓存文件目录
java 实现读取txt文件,反射创建对象,android 手机缓存文件目录
476 1
java 实现读取txt文件,反射创建对象,android 手机缓存文件目录
通过howler.js实现在Android下的微信浏览器自动播放音频
通过howler.js实现在Android下的微信浏览器自动播放音频
596 0
通过howler.js实现在Android下的微信浏览器自动播放音频
android 多级下拉菜单实现教程 greendao使用
android 多级下拉菜单实现教程 greendao使用
272 0
android 多级下拉菜单实现教程 greendao使用
深入剖析Android四大组件(四)——Messenger实现Android IPC
深入剖析Android四大组件(四)——Messenger实现Android IPC
179 2
Android自定义控件(十)——SurfaceView实战实现天气APP背景移动效果
Android自定义控件(十)——SurfaceView实战实现天气APP背景移动效果
491 0

热门文章

最新文章

  • 1
    Android历史版本与APK文件结构
    17
  • 2
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
    13
  • 3
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    13
  • 4
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    6
  • 5
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
    6
  • 6
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
    23
  • 7
    【03】微信支付商户申请下户到配置完整流程-微信开放平台创建APP应用-填写上传基础资料-生成安卓证书-获取Apk签名-申请+配置完整流程-优雅草卓伊凡
    62
  • 8
    escrcpy:【技术党必看】Android开发,Escrcpy 让你无线投屏新体验!图形界面掌控 Android,30-120fps 超流畅!🔥
    2
  • 9
    即时通讯安全篇(一):正确地理解和使用Android端加密算法
    6
  • 10
    Android实战经验之Kotlin中快速实现MVI架构
    11
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等