這個小DEMO是朋友發給小馬的,忘了是誰,在這感謝下他, 沒有這個DEMO我真不知道安卓水波紋是怎麼實作的,這個不多講了,模拟器中有點卡的樣子,大家在真機上試是正常的小馬直接上代碼,上效果,有需要的朋友下載下傳下附件DEMO就可以了, 裡面有些是調用NATIVE庫的,希望CPP高手C高手多留言指點指點,放在這,供大家下載下傳學習交流,吼吼,好東西,必須分享,這個DEMO,小馬不多講了,直接寫了,原因看注釋裡面就行的了 效果如下:
<a target="_blank" href="http://blog.51cto.com/attachment/201203/192858302.gif"></a>
主要制類代碼如下:
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();
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的朋友,特此感謝!謝謝...
本文轉自華華世界 51CTO部落格,原文連結:http://blog.51cto.com/mzh3344258/808842,如需轉載請自行聯系原作者