`
boring
  • 浏览: 3338 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论
阅读更多

安卓的一个简单的波纹特效,网上学习到的,分享一下。

 

Activity代码:

 

package com.example.plasma;

import java.io.File;
import java.io.IOException;


import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.os.Environment;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.drawable.BitmapDrawable;


public class AnimActivity extends Activity {
    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);
    }

    protected void onDraw(Canvas canvas) {
    	long ct = System.currentTimeMillis();
    	if(ct - time > 500){
    		Log.v("Fps:" + String.valueOf(fps));
    		time = ct;
    		fps = 0;
    	}
    	fps++;
    	
        AnimRender.render(mBitmap);    	
        canvas.drawBitmap(mBitmap, 0, 0, null);
        postInvalidate();
    }

    //屏幕触碰
	public boolean onTouch(View v, MotionEvent event) {
		// TODO Auto-generated method stub
		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");
    }
}

 

 

Log.java代码:

 

package com.example.plasma;

import android.util.Config;

public class Log {
	public final static String LOGTAG = "ad";

	private static final boolean DEBUG = true;
	//private static final boolean DEBUG = false;
	static final boolean LOGV = DEBUG ? Config.LOGD : Config.LOGV;

	public static void v(String msg) {
		if (LOGV) {
			android.util.Log.v(LOGTAG, msg);
		}
	}

	public static void e(String msg) {
		android.util.Log.e(LOGTAG, msg);
	}
	
	public static void d(String msg) {
		android.util.Log.d(LOGTAG, msg);
	}
}
 
分享到:
评论

相关推荐

    Android代码-自定义安卓波纹效果

    自定义安卓控件波纹效果 1.概述 通过不停绘制圆来模拟Android5.0 Ripple Effect (1)支持多重波纹。 (2)支持波纹生命周期监听。 (3)支持调整波纹颜色、速度、加速效果、形状。 2.用法 TLRipple.java:绘制单个波纹 这...

    按钮点击波纹效果

    "按钮点击波纹效果"是一种在用户触摸按钮时呈现出的动画效果,它模仿了水波扩散的动态,为用户提供了直观且吸引人的触控反馈。这种效果自Android 5.0 (Lollipop)开始引入,被称为 RippleEffect,并且通过使用...

    按钮点击波纹效果可设置扩散位置颜色

    "按钮点击波纹效果"是一种常见的UI动画技术,它使得用户在操作按钮时,能看到一个像水波纹扩散一样的视觉反馈,增强了操作的感知和互动性。这种效果在Android Material Design和许多现代Web应用中广泛使用。 `v-...

    小程序版解压木鱼,电子木鱼,水波波纹效果

    本文将深入探讨“小程序版解压木鱼”这一话题,包括它的功能、实现原理以及电子木鱼与水波波纹效果的技术细节。 “解压木鱼”是一款以模拟传统木鱼敲击声效为主要内容的应用,旨在帮助用户缓解压力、集中注意力或...

    自定义View,波纹效果

    本文将深入探讨如何实现一个自定义View,特别是动态波纹效果,这通常用于触摸反馈或者按钮按下时的视觉效果。我们将以"自定义View,波纹效果"为主题,讲解相关知识。 首先,我们需要了解自定义View的基本步骤: 1. ...

    点击波纹效果

    "点击波纹效果"是一种常见的交互设计,它模拟了水波扩散的视觉现象,为用户提供了一种直观且美观的反馈方式。这种效果在Android 5.0(Lollipop)之后引入,主要通过Material Design的` RippleDrawable`类实现。 ###...

    delphi实现水面波纹效果

    在Delphi中实现水面波纹效果是一个涉及到图形处理和动画技术的挑战。Delphi作为一个强大的对象 Pascal编程环境,提供了丰富的图形库和组件,使得开发者能够创建出动态且引人入胜的用户界面。本篇文章将深入探讨如何...

    模拟声波波纹效果

    在IT行业中,模拟声波波纹效果是一种常见的视觉呈现方式,尤其在音频处理软件、游戏设计和可视化应用中。这个项目可能是一个互动的图形界面,它通过动态的波纹动画来展示声波的变化,帮助用户直观理解声音的本质。...

    基于canvas使用three.js制作的立体水波纹效果

    3. **顶点变形(Vertex Displacement)**:在顶点着色器中,根据时间变化改变顶点位置,形成波纹效果。这涉及到对每个顶点的位置进行数学运算。 4. **光照(Lighting)**:为了增加立体感,需要考虑光照对水面的...

    轻仿android5.0按钮波纹效果.

    Android 5.0(Lollipop)引入了一种新的视觉交互效果——波纹效果(Ripple Effect),它为触摸反馈提供了优雅而动态的显示方式。波纹效果使得用户在点击控件时可以看到明显的触控反馈,提升了用户的操作感知。本教程...

    百度地图mapv 地图扩散波纹效果

    随着大数据、云计算、物联网的诞生、大量的设备数据、传感器数据、行为数据、日志数据、基础画像数据、运行数据等等都对传统的数据展现提出了新的要求 。随着前端技术的不断成熟,客户对业务系统的要求也由原来的...

    iOS 波纹效果,酷到没朋友~.zip

    "iOS 波纹效果,酷到没朋友~.zip" 是一个开源项目,名为 "RippleEffectView",它提供了一个新颖且吸引人的波纹视图效果。这种效果通常用于触摸反馈,当用户点击屏幕时,触点位置会出现类似水波扩散的动态效果,为...

    支付倒计时与旋转波纹效果

    "支付倒计时"与"旋转波纹效果"是两种常见的动态视觉元素,它们分别用于增强用户对时间感知和交互反馈的效果。 首先,我们来详细探讨"支付倒计时"。在支付流程中,设置倒计时功能通常是出于安全性和紧迫感的考虑。它...

    C++ WIN32实现水面波纹效果

    在本文中,我们将深入探讨如何使用C++和Win32 API来实现水面波纹效果。这个程序能够模拟手机上常见的动态水面波纹动画,具有很高的移植性和视觉吸引力。首先,我们要理解C++语言和Win32 API的基础知识,然后探讨水面...

    实现画面水面波纹效果

    在移动应用开发中,实现画面水面波纹效果是一种常见的视觉增强技术,它可以为用户带来更加沉浸式和互动的体验。这种效果通常应用于游戏、动态壁纸、天气应用等场景,能够显著提升应用的吸引力和趣味性。下面将详细...

    14.(leaflet篇)leaflet波纹点.zip

    标题中的“14.(leaflet篇)leaflet波纹点.zip”表明这是一个关于使用Leaflet库在地图上添加波纹效果的教程或示例。Leaflet是一个轻量级的JavaScript库,用于创建交互式Web地图。波纹效果通常指的是在地图上的特定...

    AE层的波纹效果.pdf

    本篇文章将详细讲解AE层的波纹效果及其应用场景。 "波纹效果",也被称为"涟漪效果",在AE中是一个动态的变形效果,能够模拟水面波纹般的视觉效果。它主要由以下几个关键参数控制: 1. **Radius (半径)**: 这个参数...

    Android之水波纹点击效果(RippleView)

    前景是可见的波纹效果,背景通常是纯色或渐变色,而mask决定了波纹扩散的形状。 为了在API21以下版本也支持水波纹效果,开发者可以使用第三方库,如`android-ripple-background`或者`RippleView`。这些库提供了兼容...

    应用软件实践课程设计报告---波纹效果.doc

    - **设计目的**: 本课程设计旨在通过实际操作Macromedia Flash Professional 8软件,让学生掌握Flash动画的基本制作方法,尤其是如何实现波纹效果这一特定动画技巧。 - **设计意义**: - 在现代社会中,科技快速发展...

    点击波纹效果---eclipse

    "点击波纹效果"就是一种常见的交互反馈方式,它模仿了水波纹扩散的效果,为用户提供了一种直观且美观的触控体验。这个例子是基于Eclipse IDE实现的,虽然现在许多开发者转向了Android Studio,但Eclipse仍然是很多...

Global site tag (gtag.js) - Google Analytics