安卓的一个简单的波纹特效,网上学习到的,分享一下。
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);
}
}
分享到:
相关推荐
自定义安卓控件波纹效果 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的基本步骤: 1. ...
"点击波纹效果"是一种常见的交互设计,它模拟了水波扩散的视觉现象,为用户提供了一种直观且美观的反馈方式。这种效果在Android 5.0(Lollipop)之后引入,主要通过Material Design的` RippleDrawable`类实现。 ###...
在Delphi中实现水面波纹效果是一个涉及到图形处理和动画技术的挑战。Delphi作为一个强大的对象 Pascal编程环境,提供了丰富的图形库和组件,使得开发者能够创建出动态且引人入胜的用户界面。本篇文章将深入探讨如何...
在IT行业中,模拟声波波纹效果是一种常见的视觉呈现方式,尤其在音频处理软件、游戏设计和可视化应用中。这个项目可能是一个互动的图形界面,它通过动态的波纹动画来展示声波的变化,帮助用户直观理解声音的本质。...
3. **顶点变形(Vertex Displacement)**:在顶点着色器中,根据时间变化改变顶点位置,形成波纹效果。这涉及到对每个顶点的位置进行数学运算。 4. **光照(Lighting)**:为了增加立体感,需要考虑光照对水面的...
Android 5.0(Lollipop)引入了一种新的视觉交互效果——波纹效果(Ripple Effect),它为触摸反馈提供了优雅而动态的显示方式。波纹效果使得用户在点击控件时可以看到明显的触控反馈,提升了用户的操作感知。本教程...
随着大数据、云计算、物联网的诞生、大量的设备数据、传感器数据、行为数据、日志数据、基础画像数据、运行数据等等都对传统的数据展现提出了新的要求 。随着前端技术的不断成熟,客户对业务系统的要求也由原来的...
"iOS 波纹效果,酷到没朋友~.zip" 是一个开源项目,名为 "RippleEffectView",它提供了一个新颖且吸引人的波纹视图效果。这种效果通常用于触摸反馈,当用户点击屏幕时,触点位置会出现类似水波扩散的动态效果,为...
"支付倒计时"与"旋转波纹效果"是两种常见的动态视觉元素,它们分别用于增强用户对时间感知和交互反馈的效果。 首先,我们来详细探讨"支付倒计时"。在支付流程中,设置倒计时功能通常是出于安全性和紧迫感的考虑。它...
在本文中,我们将深入探讨如何使用C++和Win32 API来实现水面波纹效果。这个程序能够模拟手机上常见的动态水面波纹动画,具有很高的移植性和视觉吸引力。首先,我们要理解C++语言和Win32 API的基础知识,然后探讨水面...
在移动应用开发中,实现画面水面波纹效果是一种常见的视觉增强技术,它可以为用户带来更加沉浸式和互动的体验。这种效果通常应用于游戏、动态壁纸、天气应用等场景,能够显著提升应用的吸引力和趣味性。下面将详细...
标题中的“14.(leaflet篇)leaflet波纹点.zip”表明这是一个关于使用Leaflet库在地图上添加波纹效果的教程或示例。Leaflet是一个轻量级的JavaScript库,用于创建交互式Web地图。波纹效果通常指的是在地图上的特定...
本篇文章将详细讲解AE层的波纹效果及其应用场景。 "波纹效果",也被称为"涟漪效果",在AE中是一个动态的变形效果,能够模拟水面波纹般的视觉效果。它主要由以下几个关键参数控制: 1. **Radius (半径)**: 这个参数...
前景是可见的波纹效果,背景通常是纯色或渐变色,而mask决定了波纹扩散的形状。 为了在API21以下版本也支持水波纹效果,开发者可以使用第三方库,如`android-ripple-background`或者`RippleView`。这些库提供了兼容...
- **设计目的**: 本课程设计旨在通过实际操作Macromedia Flash Professional 8软件,让学生掌握Flash动画的基本制作方法,尤其是如何实现波纹效果这一特定动画技巧。 - **设计意义**: - 在现代社会中,科技快速发展...
"点击波纹效果"就是一种常见的交互反馈方式,它模仿了水波纹扩散的效果,为用户提供了一种直观且美观的触控体验。这个例子是基于Eclipse IDE实现的,虽然现在许多开发者转向了Android Studio,但Eclipse仍然是很多...