这个小DEMO是朋友发给小马的,忘了是谁,在这感谢下他, 没有这个DEMO我真不知道安卓水波纹是怎么实现的,这个不多讲了,模拟器中有点卡的样子,大家在真机上试是正常的小马直接上代码,上效果,有需要的朋友下载下附件DEMO就可以了, 里面有些是调用NATIVE库的,希望CPP高手C高手多留言指点指点,放在这,供大家下载学习交流,吼吼,好东西,必须分享,这个DEMO,小马不多讲了,直接写了,原因看注释里面就行的了 效果如下:
主控制类代码如下:
- package com.example.plasma;
- import android.app.Activity;
- import android.content.Context;
- import android.content.Intent;
- import android.os.Bundle;
- import android.util.AttributeSet;
- import android.view.MotionEvent;
- import android.view.View;
- import android.view.Window;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.graphics.Canvas;
- import android.graphics.Color;
- /**
- * @Title: AnimActivity.java
- * @Package com.example.plasma
- * @Description: 安卓水波纹效果制作学习
- * @author XiaoMa
- *
- * 这个小DEMO是朋友发给小马的,忘了是谁,在这感谢下他,
- * 没有这个DEMO我真不知道安卓水波纹是怎么实现的,这个不多讲了,
- * 模拟器中有点卡的样子,大家在真机上试是正常的
- * 小马直接上代码,上效果,有需要的朋友下载下附件DEMO就可以了
- * 里面有些是调用NATIVE库的,希望CPP高手C高手多留言指点指点,
- * 放在这,供大家下载学习交流,吼吼,好东西,必须分享
- *
- */
- public class AnimActivity extends Activity {
- @Override
- public void onCreate(Bundle savedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(new PlasmaView(this));
- // this.requestWindowFeature(Window.FEATURE_NO_TITLE);
- }
- }
- class PlasmaView extends View implements View.OnTouchListener{
- private Bitmap mBitmap;
- long time;
- long fps;
- public PlasmaView(Context context) {
- super(context);
- Bitmap bmp = BitmapFactory.decodeResource(this.getResources(),R.drawable.lvzi);
- mBitmap = Bitmap.createBitmap(bmp.getWidth(), bmp.getHeight(), Bitmap.Config.RGB_565);
- AnimRender.setBitmap(bmp);
- this.setOnTouchListener(this);
- }
- @Override
- protected void onDraw(Canvas canvas) {
- long ct = System.currentTimeMillis();
- if(ct - time > 1000){
- time = ct;
- fps = 0;
- }
- fps++;
- AnimRender.render(mBitmap);
- canvas.drawBitmap(mBitmap, 0, 0, null);
- postInvalidate();
- }
- @Override
- public boolean onTouch(View v, MotionEvent event) {
- AnimRender.drop((int)event.getX(), (int)event.getY(), 500);
- return false;
- }
- }
- class AnimRender{
- public static native void setBitmap(Bitmap src);
- public static native void render(Bitmap dst);
- public static native void drop(int x, int y, int height);
- static {
- System.loadLibrary("plasma");
- }
- }
最后,代码小马就放在附件里面,有需要的朋友可下载学习下,在此感谢发我这人小DEMO的朋友,特此感谢!谢谢...
转载于:https://blog.51cto.com/mzh3344258/808842