• 【特效】手指滑动:水波纹


    package com.example.plasma;
    
    import android.app.Activity;
    import android.content.Context;
    import android.os.Bundle;
    import android.view.MotionEvent;
    import android.view.View;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.Canvas;
    
    public class AnimActivity extends Activity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(new PlasmaView(this));
        }
    }
    
    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.mm);
            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) {
                Log.v("Fps:" + String.valueOf(fps));
                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");
        }
    }
  • 相关阅读:
    CSS实现的几款不错的菜单栏
    成长经历之新年感触
    Jquery实现的几款漂亮的时间轴
    一些常用的前端基础操作
    数据图表插件echarts(二)
    数据图表插件Echarts(一)
    jQuery的属性
    jQuery的61种选择器
    JavaScript基础知识总结(四)
    JavaScript基础知识总结(三)
  • 原文地址:https://www.cnblogs.com/androidsj/p/3123661.html
Copyright © 2020-2023  润新知