一步一步實(shí)現(xiàn)雷達(dá)掃描效果

廢話不多說鲜滩,先看效果。
QQ圖片20170708101103.gif

如何現(xiàn)實(shí)

代碼里面也注釋得很清楚。掃描效果就是通過SweepGradient來實(shí)現(xiàn)的加上變換Matrix來現(xiàn)實(shí)的。

實(shí)現(xiàn)步驟:

1.先實(shí)現(xiàn)圓環(huán)
2.SweepGradient現(xiàn)實(shí)掃描渲染
3.用Matrix旋轉(zhuǎn)變換讓SweepGradient旋轉(zhuǎn)掃描起來

1.先實(shí)現(xiàn)圓環(huán)律杠。很簡單,應(yīng)該不用詳說竞惋。下面就貼代碼柜去。
  //圓圈大小的比例
private float[] circleProportion = {1 / 13f, 2 / 13f, 3 / 13f, 4 / 13f, 5 / 13f, 6 / 13f};

 @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        //圓環(huán)
        drawCircle(canvas);
    }

    private void drawCircle(Canvas canvas) {
        canvas.drawCircle(mWidth / 2, mHeight / 2, maxRadius * circleProportion[0], mPaintCircle);
        canvas.drawCircle(mWidth / 2, mHeight / 2, maxRadius * circleProportion[1], mPaintCircle);
        canvas.drawCircle(mWidth / 2, mHeight / 2, maxRadius * circleProportion[2], mPaintCircle);
        canvas.drawCircle(mWidth / 2, mHeight / 2, maxRadius * circleProportion[3], mPaintCircle);
        canvas.drawCircle(mWidth / 2, mHeight / 2, maxRadius * circleProportion[4], mPaintCircle);
        canvas.drawCircle(mWidth / 2, mHeight / 2, maxRadius * circleProportion[5], mPaintCircle);
    }

效果是:

1.png
2.SweepGradient現(xiàn)實(shí)掃描渲染

不知道SweepGradient可以看一下這篇文章(后面有時(shí)間我也寫一篇,絕對不是我懶拆宛。好吧嗓奢。我承認(rèn)我懶)
http://blog.csdn.net/t12x3456/article/details/10473225

         //初始化掃描渲染
                mSweepGradient = new SweepGradient(mWidth / 2, mHeight / 2, new int[]{Color.TRANSPARENT,
                        Color.parseColor("#84B5CA")}, null);
        
            @Override
            protected void onDraw(Canvas canvas) {
                super.onDraw(canvas);
                //畫一環(huán)環(huán)的圓圈
                drawCircle(canvas);
                //畫掃描
                drawScan(canvas);
            }
    
            private void drawScan(Canvas canvas) {
                //給畫筆設(shè)置渲染效果
                mPaintScan.setShader(mSweepGradient);
                canvas.drawCircle(mWidth / 2, mHeight / 2, maxRadius * circleProportion[4], mPaintScan);
            } 

效果:

2.png
3.用Matrix旋轉(zhuǎn)變換讓SweepGradient旋轉(zhuǎn)掃描起來

不懂Matrix可以看這篇博客:
http://www.gcssloop.com/customview/Matrix_Basic

        Matrix matrix = new Matrix();
        int speed = 5;
        private Runnable run = new Runnable() {
            @Override
            public void run() {
                matrix.preRotate(speed,mWidth/2,mHeight/2);
                invalidate();
                postDelayed(run,130);
            }
        };

    private void drawScan(Canvas canvas) {
        //給畫筆設(shè)置渲染效果
        mPaintScan.setShader(mSweepGradient);
        canvas.concat(matrix);
        canvas.drawCircle(mWidth / 2, mHeight / 2, maxRadius * circleProportion[4], mPaintScan);
    }

具體代碼見:
https://github.com/zsj1225/RadarView

參考:
http://blog.csdn.net/t12x3456/article/details/10473225
http://www.gcssloop.com/customview/Matrix_Basic
http://blog.csdn.net/mr_immortalz/article/details/51319354

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市浑厚,隨后出現(xiàn)的幾起案子股耽,更是在濱河造成了極大的恐慌根盒,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件物蝙,死亡現(xiàn)場離奇詭異郑象,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)茬末,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來盖矫,“玉大人丽惭,你說我怎么就攤上這事”菜” “怎么了责掏?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長湃望。 經(jīng)常有香客問我换衬,道長,這世上最難降的妖魔是什么证芭? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任瞳浦,我火速辦了婚禮,結(jié)果婚禮上废士,老公的妹妹穿的比我還像新娘叫潦。我一直安慰自己,他們只是感情好官硝,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布矗蕊。 她就那樣靜靜地躺著,像睡著了一般氢架。 火紅的嫁衣襯著肌膚如雪傻咖。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天岖研,我揣著相機(jī)與錄音卿操,去河邊找鬼。 笑死孙援,一個胖子當(dāng)著我的面吹牛硬纤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播赃磨,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼筝家,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了邻辉?” 一聲冷哼從身側(cè)響起溪王,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤腮鞍,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后莹菱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體移国,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年道伟,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了迹缀。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡蜜徽,死狀恐怖祝懂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情拘鞋,我是刑警寧澤砚蓬,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站盆色,受9級特大地震影響灰蛙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜隔躲,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一摩梧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧宣旱,春花似錦障本、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至买置,卻和暖如春粪糙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背忿项。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工蓉冈, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人轩触。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓寞酿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親脱柱。 傳聞我的和親對象是個殘疾皇子伐弹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容