Android自定義view實(shí)現(xiàn)太極效果實(shí)例代碼
Android自定義view實(shí)現(xiàn)太極效果實(shí)例代碼
之前一直想要個(gè)加載的loading。卻不知道用什么好,然后就想到了太極圖標(biāo),最后效果是有了,不過(guò)感覺(jué)用來(lái)做loading簡(jiǎn)直丑到爆?。?!
實(shí)現(xiàn)效果很簡(jiǎn)單,我們不要用什么貝塞爾曲線(xiàn)啥的,因?yàn)樘珮O無(wú)非就是圓圓圓,只要畫(huà)圓就ok了。來(lái)上代碼:
因?yàn)橛泻谟邪祝远x2個(gè)畫(huà)筆分別為黑和白。
private void inital() { whitePaint = new Paint(); whitePaint.setAntiAlias(true); whitePaint.setColor(Color.WHITE); blackPaint = new Paint(); blackPaint.setAntiAlias(true); blackPaint.setColor(Color.BLACK); }
最后來(lái)畫(huà)3個(gè)圓就可以解決了:
protected void onDraw(Canvas canvas) { super.onDraw(canvas); Point centerPoint = new Point(width / 2, height / 2); canvas.translate(centerPoint.x, centerPoint.y); canvas.rotate(angle); //繪制兩個(gè)半圓 int radius = Math.min(bitmapwidth, bitmapheight) / 2; RectF rect = new RectF(-radius, -radius, radius, radius); //繪制區(qū)域 canvas.drawArc(rect, 90, 180, true, blackPaint); //繪制黑色半圓 canvas.drawArc(rect, -90, 180, true, whitePaint); //繪制白色半圓 //繪制兩個(gè)小圓 int smallRadius = radius / 2; canvas.drawCircle(0, -smallRadius, smallRadius, blackPaint); canvas.drawCircle(0, smallRadius, smallRadius, whitePaint); //繪制魚(yú)眼 canvas.drawCircle(0, -smallRadius, smallRadius / 4, whitePaint); canvas.drawCircle(0, smallRadius, smallRadius / 4, blackPaint); if (load) { angle += 10; if (angle >= 360) { angle = 0; } } invalidate(); }
是不是很簡(jiǎn)單,也就幾行代碼就解決了,一開(kāi)始我還打算用貝塞爾曲線(xiàn)的(瘋了!?。?/p>
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- Android中Progress的簡(jiǎn)單實(shí)例
- Android 屬性動(dòng)畫(huà)ValueAnimator與插值器詳解
- Android中Edittext設(shè)置輸入條件
- 詳解Android中的NestedScrolling機(jī)制帶你玩轉(zhuǎn)嵌套滑動(dòng)
- Android通過(guò)自定義控件實(shí)現(xiàn)360軟件詳情頁(yè)效果
- Android SDK Manager更新、下載速度慢問(wèn)題解決辦法
- Android 使用<layer-list>實(shí)現(xiàn)微信聊天輸入框功能
- android中強(qiáng)制更新app實(shí)例代碼
相關(guān)文章
Android實(shí)現(xiàn)APP自動(dòng)更新功能
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)APP自動(dòng)更新功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05實(shí)例講解Android應(yīng)用中自定義組合控件的方法
這篇文章主要介紹了實(shí)例講解Android應(yīng)用中自定義組合控件的方法,通過(guò)例子講解了view組合控件及自定義屬性的用法,需要的朋友可以參考下2016-04-04android 監(jiān)聽(tīng)網(wǎng)絡(luò)狀態(tài)的變化及實(shí)戰(zhàn)的示例代碼
本篇文章主要介紹了android 監(jiān)聽(tīng)網(wǎng)絡(luò)狀態(tài)的變化及實(shí)戰(zhàn)的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01Android DrawerLayout帶有側(cè)滑功能的布局類(lèi)(1)
這篇文章主要為大家詳細(xì)介紹了Android DrawerLayout帶有側(cè)滑功能的布局類(lèi),感興趣的小伙伴們可以參考一下2016-07-07Android游戲開(kāi)發(fā)實(shí)踐之人物移動(dòng)地圖的平滑滾動(dòng)處理
玩過(guò)rpg游戲的朋友應(yīng)該都知道RPG的游戲地圖一般都比較大 今天我和大家分享一下在RPG游戲中如何來(lái)處理超出手機(jī)屏幕大小的游戲地圖。2014-06-06Android在view.requestFocus(0)返回false的解決辦法
這篇文章主要介紹了Android在view.requestFocus(0)返回false的解決辦法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下2016-08-08