1. 程式人生 > >Android 雪花飄落效果

Android 雪花飄落效果


        由於專案需要實現類似於雪花飄落的效果,在Github中找到了開源專案(NineOldAndroids):https://github.com/JakeWharton/NineOldAndroids/,其中有一個效果就是類似於雪花飄落效果,在這裡我只單獨把那個效果提取出來了,大家可以下載整個專案自己研究,我們都是站在別人的肩膀上成長的。那咱們先看看效果:


這個效果都是用的android的動畫疊加效果實現的,就不多說了,已經寫好,有興趣可以慢慢研究模仿。

這裡只提取出啦兩個檔案,分別是:

1.Flake.java

2.FlakeView.java

由於Demo中是給的一個飄落圖片,當然不能很好地展現飄落的多樣性,所以我們可以在FlakeView中新增自己的圖片(圖片最好是正方形的,高度一定要大於等於寬度)。

一、因為每一個圖片就是一張Bitmap,所以我們要定義幾個Bitmap物件,我這裡定義了5個:

    Bitmap droid;       // The bitmap that all flakes use
    Bitmap droid2;
    Bitmap droid3;
    Bitmap droid4;
    Bitmap droid5;
二、然後在建構函式中初始化圖片資源:
    droid = BitmapFactory.decodeResource(getResources(), R.drawable.icon_1);
    droid2 = BitmapFactory.decodeResource(getResources(), R.drawable.icon_2);
    droid3 = BitmapFactory.decodeResource(getResources(), R.drawable.icon_3);
    droid4 = BitmapFactory.decodeResource(getResources(), R.drawable.icon_4);
    droid5 = BitmapFactory.decodeResource(getResources(), R.drawable.icon_5);
三、現在我們把圖片資源新增到集合中:

修改FlakeView中的addFlakes方法

    public void addFlakes(int quantity) {
	   if(numFlakes <= 75)//這裡定義花瓣的數量以及花色樣式
	   {
	        for (int i = 0; i < quantity; ++i) {
	        	if(i % 5 == 0)
	        		flakes.add(Flake.createFlake(getWidth(), droid));
	        	else if(i % 5 == 1)
	        		flakes.add(Flake.createFlake(getWidth(), droid2));
	        	else if(i % 5 == 2)
	        		flakes.add(Flake.createFlake(getWidth(), droid3));
	        	else if(i % 5 == 3)
	        		flakes.add(Flake.createFlake(getWidth(), droid4));
	        	else
	        		flakes.add(Flake.createFlake(getWidth(), droid5));
	        }
	        setNumFlakes(numFlakes + quantity);
	   }
    }
因為我的圖片為5張,所以這裡為了每個圖片數量一致,就設定了總數75張(數量多少可以自己設定,可以定義為全域性變數,這裡就沒有定義了),然後迴圈設定圖片到集合裡,就有了多種圖片了。

要修改的地方基本就是這些了,要修改速度就到Flake中,找到speed中修改即可。

Demo下載地址


相關推薦

Android 雪花飄落效果

        由於專案需要實現類似於雪花飄落的效果,在Github中找到了開源專案(NineOldAndroids):https://github.com/JakeWharton/NineOldAndroids/,其中有一個效果就是類似於雪花飄落效果,在這裡我只單獨把那個效

Android自定義View——從零開始實現雪花飄落效果

前言:轉眼已是十一月下旬了,天氣慢慢轉冷,不知道北方是不是已經開始下雪了呢?本期教程我們就順應季節主題,一起來實現 雪花飄落的效果吧。本篇效果思路參考自國外大神的Android實現雪花飛舞效果,並在此基礎上實現進一步的封裝和功能擴充套件 本篇只著重於思路和

Android實戰簡易教程-第六十九槍(自定義控制元件實現雪花飄落效果

現在APP要求越來越高了,不只是要求實現功能,顏值的要求也越來越高,下面我們通過自定義控制元件來實現雪花飄落的效果,可以作為介面背景哦。1.自定義控制元件:package com.test.a; import java.util.Random; import androi

【OpenGL】Shader實例分析(七)- 雪花飄落效果

mouse llb cto 接下來 pix lan details effect art 轉發請保持地址:http://blog.csdn.net/stalendp/article/details/40624603 研究了一個雪花飄落效果。感覺挺不錯的。分享給大家,效

雪花飄落效果+雪花紅梅 電視劇步步驚心插曲-劉詩詩

<!doctype html> <html lang="en">      <head>     <!-雪花紅梅 電視劇步步驚心插曲-劉詩詩-->      

【OpenGL】Shader例項分析(七)- 雪花飄落效果

研究了一個雪花飄落效果,感覺挺不錯的,分享給大家,效果如下: 程式碼如下: Shader "shadertoy/Flakes" { // https://www.shadertoy.com/view/4d2Xzc Properties{ iMouse ("Mo

JS實現雪花飄落特效效果

1、概述: 以任意圖片作為背景,在背景上新增雪花下落的特效效果,此處使用隨機顏色、隨機大小的彩色雪花實現。 2、效果實現功能: (1)雪花隨機出現並隨機消失; (2)雪花出現時大小隨機; (3)雪花顏色隨機; (4)雪花顏色逐漸變淡並消失; (5)雪花消失後刪除其物件

雪花飄落的動態效果

1 最近看了一些oc的核心動畫,發現了一些以前不懂的知識。突然發現一個很好玩的動畫效果,雪花飄落。 2 具體實現的程式碼: //雪花飄落 CAEmitterLayer *flowerLayer = [CAEmitterLayerlayer];     flowerLay

Android雪花飄落的動畫特效

     之前有搜尋過相關的資訊,但是都不是最全的,下面我們來直接瞭解這個特效吧: 下面我們來看一看程式碼的實現吧:   三個工具類:其中主函式中不需要寫程式碼,只需佈局有相應的控制元件即可,雪花的大小、顏色和數量等可以自己設定 1.************

css3雪花飄落動畫效果

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type=

Android Vibrator震動效果

can cnblogs () 否則 指定 pan log 需要 動效 android震動器:Vibrator Android手機中的震動由Vibrator實現。 Vibrator vibrator = (Vibrator) getSystemService(VIBRATO

Android 仿 窗簾效果 和 登錄界面拖動效果 (Scroller類的應用) 附 2個DEMO及源代碼

@override 宋體 off down != 過程 事件 學習 border 在android學習中,動作交互是軟件中重要的一部分。當中的Scroller就是提供了拖動效果的類,在網上。比方說一些Launcher實現滑屏都能夠通過這個類去實現。以下要說的

小圖形下落,類似雪花飄落,原生js

gin charset push resize select div ram 函數 edge <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <meta

android 水波紋效果實現

drawable color utf true odi lec .com enc orm 1.在drawable文件下,新建seletor,作為button的背景,這裏我用的是兩個圓角的shape <?xml version="1.0" encoding="utf-

Android時間軸效果,直接使用在你的項目中

Coding return pro 查詢 gpo ava person turn rst 近期開發app搞到歷史查詢,受騰訊qq的啟示,搞一個具有時間軸效果的ui

個人網站html5雪花飄落代碼JS特效下載

ret 聖誕 pri 個人網站 nts 網站 www. pos jquery庫 如何給自己的網站/頁面添加雪花代碼、特效呢?有的網站配合自己的主題模板添加雪花飄落效果挺好看的。特別是與冬天季節相關的主題,很多的博客空間都加了雪花的效果。在網上搜索了幾種雪花效果,做了簡單的修

手寫簡單的jq雪花飄落

簡化 頁面加載 tint 一個 poi 交互效果 自身 rand ID 閑來無事,準備寫個雪花飄落的效果,沒有寫太牛逼的特效,極大的簡化了代碼量,這樣容易讀取代碼,用起來也很簡單,對於那些小白簡直是福利啊,簡單易讀易學。先直接上代碼吧,然後再一一講解,直接復制粘

Android點陣屏效果的控制元件

最近發現了一個比較好玩的效果,android實現的LED點陣螢幕效果,挺有意思的,於是花了點時間實現了一下,這個用在演唱會上的粉絲當成牌子舉是不是挺好的呢,或者是送給妹子?哈哈~ 實現思路比較簡單,主要是計算漢字對應的點陣矩陣,漢字通過GB2312編碼,每個漢字對用兩個byte來表示,而一個漢字

Android懸浮窗效果的實現

具體懸浮窗效果實現參考大神部落格:http://blog.csdn.net/stevenhu_223/article/details/8504058 至於在拖動懸浮窗時會產生抖動,這是因為OnTouch事件中呼叫錯了函式,在網上查了下,弄明白這兩個函式的區別: event.getX()

Android刮彩票效果

實現分析: 1.底部一張圖片 2.圖片頭部是一個矩形遮擋圖片 3.通過滑動監聽,讓矩形缺失,露出底部圖片 主要程式碼如下: private RectF rectf; private Bitmap bitmap = BitmapFactory.de