日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

Android 仿王者荣耀广告弹窗,android仿王者荣耀对战资料之能力图

發(fā)布時(shí)間:2023/12/15 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 仿王者荣耀广告弹窗,android仿王者荣耀对战资料之能力图 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

TX的王者榮耀最近是火的不得了啊,小編也是最近入坑。玩了幾天之后,發(fā)現(xiàn)對(duì)戰(zhàn)資料之能力圖,蠻有意思(其實(shí)我想說(shuō),我們的產(chǎn)品妹子是個(gè)農(nóng)藥迷,非要把農(nóng)藥的能力圖搬到我們的app中),于是就有了下面的自定義view了。。。

首先看農(nóng)藥的截圖

看到這樣的需求之后,果斷的各種github或baidu,有料,雖沒(méi)有可以直接搬來(lái)的用的view(但是皇天不負(fù)有(偷)心(懶)人),把他的view拿過(guò)來(lái)改ba改ba就有了現(xiàn)在這個(gè)輪子了。。。好了,東拉西扯了這么多,廢話終止吧,還是直奔主題了。

ps:鴻洋的公眾號(hào)中有這么個(gè)帖子,鏈接地址:Android自定義控件 芝麻信用分雷達(dá)圖

一、首先,講一下實(shí)現(xiàn)思路:

1.首先確定view的中點(diǎn)坐標(biāo);

2.繪制多邊形;

3.繪制中點(diǎn)到多邊形各頂點(diǎn)連線;

4.繪制目標(biāo)圓點(diǎn);

5.繪制目標(biāo)點(diǎn)之間的連線,連接完成后,再繪制覆蓋區(qū)域;

6.繪制中心文字;

7.繪制多邊形各頂點(diǎn)的文字。

二、接著,按上面的實(shí)現(xiàn)思路按部就班實(shí)現(xiàn):

1.獲取中點(diǎn)坐標(biāo),在onSizeChanged(int w, int h, int oldw, int oldh)方法中獲取,就省了測(cè)量的步驟。根據(jù)view的width、height,計(jì)算出中點(diǎn)坐標(biāo)(說(shuō)明:radius= Math.min(w,h) /2*3/5,‘*3/5’是設(shè)置半徑為view占得區(qū)域比例)

2.繪制多邊形,這里舉例繪制六變形,請(qǐng)先看實(shí)現(xiàn)截圖

下面看具體實(shí)現(xiàn),這里要說(shuō)明兩個(gè)問(wèn)題:

1)繪制多邊形,因?yàn)槭抢L制5個(gè)六邊形,而且是按比例0.2,所以就有了后面的percent這個(gè)參數(shù);

2)getPoint(int position,float percent)這個(gè)方法非常重要(后面貼圖),可以這么講,整個(gè)自定義view,全依賴它了。后面細(xì)述,這里就不贅述了。

3.繪制中點(diǎn)到多邊形各頂點(diǎn)連線。這里還是以剛才的六邊形舉例,請(qǐng)看截圖和具體是實(shí)現(xiàn):

4.繪制目標(biāo)圓點(diǎn),因?yàn)閳A點(diǎn)繪制比較小的緣故,這里就不貼圖了,請(qǐng)大家自行腦補(bǔ)或看后面的實(shí)現(xiàn)截圖,可以看到一個(gè)小圓點(diǎn)。下面請(qǐng)看具體實(shí)現(xiàn):

5.繪制目標(biāo)點(diǎn)之間的連線,連接完成后,再繪制覆蓋區(qū)域。請(qǐng)先看實(shí)現(xiàn)截圖,然后請(qǐng)看下面的實(shí)現(xiàn)細(xì)節(jié):

6.繪制中心文字,還是請(qǐng)先看實(shí)現(xiàn)效果,然后后面接著具體實(shí)現(xiàn),這里說(shuō)明一下,drawtext方法,該方法的目的是為了讓文字居中(原理:先建一個(gè)矩形,把目標(biāo)文字放進(jìn)去,即可得到目標(biāo)文字的寬高)。然后根據(jù)文字的左下角坐標(biāo)開(kāi)始繪制文字,即可讓文字居中。

7.繪制多邊形各頂點(diǎn)的文字。老規(guī)矩,還是先看實(shí)現(xiàn)截圖,然后看實(shí)現(xiàn)細(xì)節(jié):(請(qǐng)?jiān)?#xff0c;這里的實(shí)現(xiàn)效果截圖是在as的效果預(yù)覽中截的,所以細(xì)心的童鞋可能已經(jīng)發(fā)現(xiàn)了,其實(shí)在手機(jī)上運(yùn)行截圖如上圖,文字居中顯示。)

補(bǔ)充:1.記得在上面講過(guò),一個(gè)最重的getPoint方法還沒(méi)細(xì)述,這里要詳細(xì)講一下。請(qǐng)先看具體實(shí)現(xiàn)截圖,然后講為什么這樣?!原理:每個(gè)點(diǎn)都是相對(duì)于中點(diǎn)(centerX,centerY)的,所以我們先獲取每個(gè)點(diǎn)的絕對(duì)坐標(biāo)(x0,y0),然后再計(jì)算出這些點(diǎn)相對(duì)于中點(diǎn)的坐標(biāo),即可得到已知坐標(biāo)的點(diǎn)。

ps:這里對(duì)奇數(shù)邊的多邊形和偶數(shù)邊的多邊形進(jìn)行了區(qū)分,至于為什么區(qū)分,請(qǐng)自行腦補(bǔ)。原理:目標(biāo)點(diǎn)繞某個(gè)點(diǎn)旋轉(zhuǎn)某角度之后該點(diǎn)的新坐標(biāo)與原坐標(biāo)之間存在著某種關(guān)系,詳細(xì)關(guān)系請(qǐng)見(jiàn)截圖公式。

2.忘記講values/attrs文件了,這個(gè)還是有必要聊一下的,因?yàn)樗婕皏iew應(yīng)用時(shí)的自定義屬性,可以直接在view中定義。下面請(qǐng)看attrs.xml

三、使用

用法1.view中使用

用法2.activity或fragment

四、源碼地址:https://gitee.com/tangbuzhi/customview

總結(jié)

以上是生活随笔為你收集整理的Android 仿王者荣耀广告弹窗,android仿王者荣耀对战资料之能力图的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。