您好,登錄后才能下訂單哦!
怎么在Android中利用view實現一個太極效果?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
Android自定義view實現太極效果實例代碼
之前一直想要個加載的loading。卻不知道用什么好,然后就想到了太極圖標,最后效果是有了,不過感覺用來做loading簡直丑到爆!!!
實現效果很簡單,我們不要用什么貝塞爾曲線啥的,因為太極無非就是圓圓圓,只要畫圓就ok了。來上代碼:
因為有黑有白,所以定義2個畫筆分別為黑和白。
private void inital() { whitePaint = new Paint(); whitePaint.setAntiAlias(true); whitePaint.setColor(Color.WHITE); blackPaint = new Paint(); blackPaint.setAntiAlias(true); blackPaint.setColor(Color.BLACK); }
最后來畫3個圓就可以解決了:
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); //繪制兩個半圓 int radius = Math.min(bitmapwidth, bitmapheight) / 2; RectF rect = new RectF(-radius, -radius, radius, radius); //繪制區域 canvas.drawArc(rect, 90, 180, true, blackPaint); //繪制黑色半圓 canvas.drawArc(rect, -90, 180, true, whitePaint); //繪制白色半圓 //繪制兩個小圓 int smallRadius = radius / 2; canvas.drawCircle(0, -smallRadius, smallRadius, blackPaint); canvas.drawCircle(0, smallRadius, smallRadius, whitePaint); //繪制魚眼 canvas.drawCircle(0, -smallRadius, smallRadius / 4, whitePaint); canvas.drawCircle(0, smallRadius, smallRadius / 4, blackPaint); if (load) { angle += 10; if (angle >= 360) { angle = 0; } } invalidate(); }
關于怎么在Android中利用view實現一個太極效果問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。