摘要:資源加載完成后,又切換回靜態(tài)效果。分別是種,個動畫,個進度條底座。使用,疊加多層效果。定義旋轉(zhuǎn)效果。定義進度條的樣式。離開頁面時記得關(guān)閉動畫小結(jié)小結(jié)要實現(xiàn)轉(zhuǎn)圈的效果。主要還是直接操作對象,把動畫加進去。做出更豐富的效果。
某些音樂播放或者視頻播放的界面上,資源還在加載時,進度條的原點(thumb)會顯示一個轉(zhuǎn)圈的效果。
資源加載完成后,又切換回靜態(tài)效果。這個效果增強了用戶體驗。
一般來說有美術(shù)人員負(fù)責(zé)設(shè)計和切圖。嘗試實現(xiàn)時,我們可以使用使用drawable,來模擬實現(xiàn)這個轉(zhuǎn)圈的效果。
為方便管理,可以添加一些尺寸設(shè)置
6dp 2dp 20dp 4dp
我們一共要添加4個drawable文件。分別是2種thumb,1個動畫,1個進度條“底座”。
shape_thumb_round_1.xml # 靜態(tài)thumblayers_seek_bar_progress_1.xmllayers_thumb_ring_sweep_1.xmlrotate_thumb_1.xml
用solid和stroke做出的圓環(huán)效果
這是準(zhǔn)備拿來轉(zhuǎn)圈的thumb。使用layer-list,疊加多層效果。
底部是一個半白色的圓(android:shape="oval"
)。
再疊加上一層圓環(huán)(android:shape="ring"
),使用了漸變色,增加動感。
-
-
定義旋轉(zhuǎn)效果。注意它的drawable
使用了上面定義的layers_thumb_ring_sweep_1.xml。
旋轉(zhuǎn)參數(shù)android:toDegrees
可以根據(jù)需求定義。
定義進度條的樣式。這個是“底座”。顏色要和上面的匹配,看起來好看一點。
-
-
-
上面的資源文件準(zhǔn)備完畢后。在我們的布局中添加一個SeekBar
android:maxHeight
和android:minHeight
需要設(shè)置android:progressDrawable
用前面定義好的“底座”android:thumb
先使用靜態(tài)的樣式
由Activity來持有Drawable變量和動畫。例子中使用了dataBinding。
private RotateDrawable mRotateThumbDrawable; // 加載中的thumb,由Activity來持有這個drawableprivate Drawable mSolidThumb;private ObjectAnimator mThumbAnimator; // 控制動畫// ... @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mBinding = DataBindingUtil.setContentView(this, R.layout.act_seekbar_1);// ... mRotateThumbDrawable = (RotateDrawable) AppCompatResources.getDrawable(getApplicationContext(), R.drawable.rotate_thumb_1); mSolidThumb = AppCompatResources.getDrawable(getApplicationContext(), R.drawable.shape_thumb_round_1); }
Drawable對象由activity直接持有,操作起來比較方便。
改變seekbar的thumb,使用方法setThumb(Drawable thumb)
使用靜態(tài)的thumb
mBinding.playSb.setThumb(mSolidThumb);
使用轉(zhuǎn)圈圈的效果,先setThumb
,并且需要啟動動畫
mBinding.playSb.setThumb(mRotateThumbDrawable);mThumbAnimator = ObjectAnimator.ofInt(mRotateThumbDrawable, "level", 0, 10000);mThumbAnimator.setDuration(1000);mThumbAnimator.setRepeatCount(ValueAnimator.INFINITE);mThumbAnimator.setInterpolator(new LinearInterpolator());mThumbAnimator.start();
效果如下圖
可以在靜態(tài)和動態(tài)之間相互切換。
離開頁面時記得關(guān)閉動畫
@Overrideprotected void onDestroy() { if (null != mThumbAnimator) { mThumbAnimator.cancel(); } super.onDestroy();}
要實現(xiàn)轉(zhuǎn)圈的效果。主要還是直接操作drawable對象,把動畫加進去。
setThumb(Drawable thumb)
方法接受的是Drawable對象,那么我們的思路就是從控制Drawable這點下手。
全部使用drawable可以達到文中的效果。有條件的也可以使用圖片資源。做出更豐富的效果。
參考:
layer-list
的環(huán)形drawable https://stackoverflow.com/questions/30676208/how-to-create-ring-shape-drawable-in-android/30677289更多Android文章可參考 https://an.rustfisher.com/
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/123988.html
摘要:地址中文自定義能改變尺寸顏色滑塊圖片刻度圖片刻度文字和氣泡指示器,當(dāng)滑動時顯示帶有進度的指示器。給選擇圓角方角默認(rèn)兩端是圓角,可以設(shè)置為方形。滑塊下顯示進度當(dāng)?shù)念愋蜑闀r可以設(shè)置滑動后滑塊下顯示保留進度。 IndicatorSeekBar showImg(https://segmentfault.com/img/remote/1460000011967195);showImg(https...
摘要:吃飽喝足,兩個人扶著腰走在路上炫腹還是女盆友的提醒說,你不是會小程序嗎,能不能寫一個點贊的小程序來用。哎還真是,我自己擼一個也是闊以的,說不定還能給其他人用。比較適合想要練手小程序和的童鞋全部的代碼還請移步我的歡迎和。 showImg(https://segmentfault.com/img/remote/1460000015245489?w=530&h=153); 發(fā)生背景: ???...
閱讀 1561·2021-11-24 09:39
閱讀 1042·2021-11-22 15:11
閱讀 2167·2021-11-19 11:35
閱讀 1627·2021-09-13 10:37
閱讀 2453·2021-09-03 10:47
閱讀 2134·2021-08-30 09:47
閱讀 1625·2021-08-20 09:39
閱讀 2901·2019-08-30 14:13