【View】之【SimpleWaveView】可多色可重新整理的加速球、進度球【demo】
阿新 • • 發佈:2019-02-01
轉載 http://www.cnblogs.com/uncle2000/p/3796034.html
當前版本:SimpleWaveView_v1.0.20140618
先看效果圖,這個加速球是動態的,並且當呼叫了myView.setRefresh(0.8F);方法後可以從當前值動態降到0再升到80%,期間可以看到顏色的變化。顏色不是漸變的。本人不會弄動態圖所以只有靜態圖片 = =
本進度球的優點:
1之前我用一張波浪圖片不停的擷取來做,結果在我的200M的虛擬機器上漸漸的開始卡,並且系統不停的自動GC,所以就用了這種方式來做,大大優化了其對CPU和記憶體的壓力。
值得一提的是,當其所屬的父View被cleanAnimation後,進度球的波浪會停止,由於本人時間非常緊,所以諸如此類的問題請給我留言,我會在有時間的時候來回復和加入新的東西。
2可以變色,最多可以設定三種顏色,詳細看後的API
3反正一定要看API。
小提示:
亮色的背景可以減少視覺對鋸齒的感知哦!
下圖是在幀佈局中的,就不上佈局了哈,畢竟幀佈局是最簡單的佈局。
當設定了
myView.setWaveDiffrentColor(0xffff0f04, 0xfffdd803, 0xff00ed04, 0.3F, 0.6F);
後進行重新整理後的三種色的圖片。相信看後邊的中文API。文字是幀佈局蓋上去的,不是demo中的
demo的下載地址在CSDN上,老規矩,0分即可下載。我都這麼虔誠了,所以請各位親若轉載我的文章附上我的blog的地址,以後若有新版本方便更換。http://www.cnblogs.com/uncle2000/
使用方法,這次不需要你傳長寬和畫素密度了。
LinearLayout ll; com.ww.view.SimpleWaveViewmyview =new com.ww.view.SimpleWaveView(getApplicationContext()); ll=(LinearLayout)findViewById(R.id.ll); ll.addView(myview); myview.setWaveDiffrentColor(0xffff0f04, 0xfffdd803, 0xff00ed04, 0.3F, 0.6F); myview.setRefresh(0.8F);
API:
/** * Level1在(0%,100%)之間則ColorLevel1,ColorLevel2生效,有兩種顏色。Level2在(Level1,100%)之間則ColorLevel1,ColorLevel2,ColorLevel3生效,有三種顏色。 * 該方法一旦生效,則setColor()方法自動失效。 * @param ColorLevel1 [0%,Level1)之間的波浪的顏色 * @param ColorLevel2 Level2生效的情況下,顯示為[Level1,Level2)之間的波浪的顏色,Level2不生效的情況下,顯示為[Level1,100%]之間的波浪的顏色。 * @param ColorLevel3 [Level2,100%]之間的波浪的顏色 * @param Level1 第一分界 * @param Level2 第二分界,大於Level1生效,否則預設失效。 */ public void setWaveDiffrentColor(int ColorLevel1,int ColorLevel2,int ColorLevel3,float Level1,float Level2) {}
/** * 設定波浪的顏色,如果設定了setWaveDiffrentColor()方法則setColor()自動失效。 * @param color波浪顏色 */ public void setColor(int color) {}
/** * 從重新整理前的高度降到0,然再升到重新整理後的高度 * @param refresh 重新整理之後的高度 */ public void setRefresh(float refresh) {}
/** * 取值0~255之間,255代表不透明。 * @param alpha 透明度 */ public void setAlpha(int alpha) {}
/** * 決定了兩個波峰之間的距離,該引數越大,波峰之間的距離越小 * @param peakSpacing 波間距(反比) */ public void setPeakSpacing(double peakSpacing) {}
/** * 決定了當前波浪停留的位置。取值0~1之間。 * @param percentage 百分比 */ public void setPercentage(float percentage) {}
/** * 決定了波的高度 * @param amplitude 幅度 */ public void setAmplitude(float amplitude) {}
/** * * @param speedH 水平波浪的速度 */ public void setSpeedH(float speedH) {}
/** * * @param speedV 升降的速度 */ public void setSpeedV(float speedV) {}
下載地址:
http://download.csdn.net/detail/w52155242/7517331