Android編程簡(jiǎn)單實(shí)現(xiàn)雷達(dá)掃描效果
本文實(shí)例講述了Android編程簡(jiǎn)單實(shí)現(xiàn)雷達(dá)掃描效果。分享給大家供大家參考,具體如下:
在eoe看到有一篇關(guān)于雷達(dá)掃描的文章,然后看了下,很簡(jiǎn)單,但是覺(jué)得還有很多可以?xún)?yōu)化的地方,下面貼出來(lái)
package com.example.wave; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.Paint.Style; import android.graphics.Shader; import android.graphics.SweepGradient; import android.util.AttributeSet; import android.widget.FrameLayout; public class RadarView extends FrameLayout { private int viewSize = 500; private Paint mPaintLine; private Paint mPaintSector; private boolean isStart = false; private ScanThread mThread; private int start = 0; private final int paintWidth = 10; public RadarView(Context context) { super(context); init(); } public RadarView(Context context, AttributeSet attrs) { super(context, attrs); init(); } private void init() { initPaint(); mThread = new ScanThread(); setBackgroundColor(Color.TRANSPARENT); } private void initPaint() { mPaintLine = new Paint(); mPaintLine.setStrokeWidth(paintWidth); mPaintLine.setAntiAlias(true); mPaintLine.setStyle(Style.STROKE); mPaintLine.setColor(0xffff0000); mPaintSector = new Paint(); mPaintSector.setColor(0x9D00ff00); mPaintSector.setAntiAlias(true); } public void setViewSize(int size) { this.viewSize = size; mShader = new SweepGradient(viewSize >> 1, viewSize >> 1, Color.TRANSPARENT, Color.GREEN); setMeasuredDimension(viewSize, viewSize); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { setMeasuredDimension(viewSize, viewSize); } public void start() { mThread.start(); isStart = true; } public void stop() { if (isStart) { Thread.interrupted(); isStart = false; } } private Shader mShader = new SweepGradient(viewSize >> 1, viewSize >> 1, Color.TRANSPARENT, Color.GREEN); private Matrix matrix = new Matrix(); @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); int halfRadaSize = viewSize >> 1; canvas.drawCircle(halfRadaSize, halfRadaSize, halfRadaSize >> 1, mPaintLine); canvas.drawCircle(halfRadaSize, halfRadaSize, halfRadaSize - (paintWidth >> 1), mPaintLine); canvas.drawLine(halfRadaSize, 0, halfRadaSize, viewSize, mPaintLine); canvas.drawLine(0, halfRadaSize, viewSize, halfRadaSize, mPaintLine); mPaintSector.setShader(mShader); canvas.concat(matrix); canvas.drawCircle(halfRadaSize, halfRadaSize, halfRadaSize - paintWidth, mPaintSector); } protected class ScanThread extends Thread { int halfRadaSize = viewSize >> 1; @Override public void run() { while (isStart) { start = start + 2; matrix.reset(); matrix.postRotate(start, halfRadaSize, halfRadaSize); postInvalidate(); try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } } } } }
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
- Android Shader應(yīng)用開(kāi)發(fā)之雷達(dá)掃描效果
- Android仿微信雷達(dá)掃描效果的實(shí)現(xiàn)方法
- Android仿微信、QQ附近好友雷達(dá)掃描效果
- Android雷達(dá)掃描動(dòng)態(tài)界面制作
- Android自定義ViewGroup實(shí)現(xiàn)絢麗的仿支付寶咻一咻雷達(dá)脈沖效果
- Android仿支付寶上芝麻信用分雷達(dá)圖
- Android動(dòng)畫(huà)之雷達(dá)掃描效果
- Android仿微信雷達(dá)輻射搜索好友(邏輯清晰實(shí)現(xiàn)簡(jiǎn)單)
- 基于A(yíng)ndroid自定義控件實(shí)現(xiàn)雷達(dá)效果
相關(guān)文章
Android實(shí)現(xiàn)帶附件的郵件發(fā)送功能
這篇文章主要介紹了Android實(shí)現(xiàn)帶附件的郵件發(fā)送功能的相關(guān)資料,android發(fā)送郵件有兩種方式,本文重點(diǎn)介紹基于JMail實(shí)現(xiàn)郵件發(fā)送功能,感興趣的小伙伴們可以參考一下2016-01-01Android O實(shí)現(xiàn)Framework層CENTER鍵長(zhǎng)按功能方法
這篇文章主要為大家介紹了Android O實(shí)現(xiàn)Framework層CENTER鍵長(zhǎng)按功能方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08Android 對(duì)話(huà)框sweet-alert-dialog
這篇文章主要介紹了Android 對(duì)話(huà)框sweet-alert-dialog的相關(guān)資料,需要的朋友可以參考下2016-09-09關(guān)于A(yíng)ndroid 4.4相機(jī)預(yù)覽、錄像花屏的問(wèn)題的解決方法
這篇文章主要介紹了關(guān)于A(yíng)ndroid 4.4相機(jī)預(yù)覽、錄像花屏的問(wèn)題的解決方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2016-12-12Android BroadcastReceiver傳輸機(jī)制詳解
Android開(kāi)發(fā)的四大組件分別是:活動(dòng)(activity),用于表現(xiàn)功能;服務(wù)(service),后臺(tái)運(yùn)行服務(wù),不提供界面呈現(xiàn);廣播接受者(Broadcast Receive),勇于接收廣播;內(nèi)容提供者(Content Provider),支持多個(gè)應(yīng)用中存儲(chǔ)和讀取數(shù)據(jù),相當(dāng)于數(shù)據(jù)庫(kù),本篇著重介紹廣播組件2023-01-01Android 通過(guò)網(wǎng)絡(luò)圖片路徑查看圖片實(shí)例詳解
這篇文章主要介紹了Android 通過(guò)網(wǎng)絡(luò)圖片路徑查看圖片實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-06-06Android中Notification 提示對(duì)話(huà)框
Notification,俗稱(chēng)通知,是一種具有全局效果的通知,它展示在屏幕的頂端,首先會(huì)表現(xiàn)為一個(gè)圖標(biāo)的形式,當(dāng)用戶(hù)向下滑動(dòng)的時(shí)候,展示出通知具體的內(nèi)容2016-01-01