android 雷達UI

來源:互聯網
上載者:User

android 雷達UI

public class BaseView extends RelativeLayout{public Context context;public BaseView(Context context) {super(context);this.context = context;}public BaseView(Context context, AttributeSet attrs) {super(context, attrs);this.context = context;}public BaseView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);this.context = context;}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);}}
public class SearchDevicesView extends BaseView{public static final String TAG = "SearchDevicesView";public static final boolean D  = BuildConfig.DEBUG; @SuppressWarnings("unused")private long TIME_DIFF = 1500;int[] lineColor = new int[]{0x7B, 0x7B, 0x7B};int[] innerCircle0 = new int[]{0xb9, 0xff, 0xFF};int[] innerCircle1 = new int[]{0xdf, 0xff, 0xFF};int[] innerCircle2 = new int[]{0xec, 0xff, 0xFF};int[] argColor = new int[]{0xF3, 0xf3, 0xfa};private float offsetArgs = 0;private boolean isSearching = false;private Bitmap bitmap;private Bitmap bitmap1;private Bitmap bitmap2;public boolean isSearching() {return isSearching;}public void setSearching(boolean isSearching) {this.isSearching = isSearching;offsetArgs = 0;invalidate();}public SearchDevicesView(Context context) {super(context);initBitmap();}public SearchDevicesView(Context context, AttributeSet attrs) {super(context, attrs);initBitmap();}public SearchDevicesView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);initBitmap();}private void initBitmap(){if(bitmap == null){bitmap = Bitmap.createBitmap(BitmapFactory.decodeResource(context.getResources(), R.drawable.gplus_search_bg));}if(bitmap1 == null){bitmap1 = Bitmap.createBitmap(BitmapFactory.decodeResource(context.getResources(), R.drawable.locus_round_click));}if(bitmap2 == null){bitmap2 = Bitmap.createBitmap(BitmapFactory.decodeResource(context.getResources(), R.drawable.gplus_search_args));}}@SuppressLint("DrawAllocation")@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);canvas.drawBitmap(bitmap, getWidth() / 2 - bitmap.getWidth() / 2, getHeight() / 2 - bitmap.getHeight() / 2, null);if(isSearching){Rect rMoon = new Rect(getWidth()/2-bitmap2.getWidth(),getHeight()/2,getWidth()/2,getHeight()/2+bitmap2.getHeight()); canvas.rotate(offsetArgs,getWidth()/2,getHeight()/2);canvas.drawBitmap(bitmap2,null,rMoon,null);offsetArgs = offsetArgs + 3;}else{canvas.drawBitmap(bitmap2,  getWidth() / 2  - bitmap2.getWidth() , getHeight() / 2, null);}canvas.drawBitmap(bitmap1,  getWidth() / 2 - bitmap1.getWidth() / 2, getHeight() / 2 - bitmap1.getHeight() / 2, null);if(isSearching) invalidate();}@Overridepublic boolean onTouchEvent(MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_DOWN:handleActionDownEvenet(event);return true;case MotionEvent.ACTION_MOVE: return true;case MotionEvent.ACTION_UP:return true;}return super.onTouchEvent(event);}private void handleActionDownEvenet(MotionEvent event){RectF rectF = new RectF(getWidth() / 2 - bitmap1.getWidth() / 2, getHeight() / 2 - bitmap1.getHeight() / 2, getWidth() / 2 + bitmap1.getWidth() / 2, getHeight() / 2 + bitmap1.getHeight() / 2);if(rectF.contains(event.getX(), event.getY())){if(D) Log.d(TAG, "click search device button");if(!isSearching()) {setSearching(true);}else{setSearching(false);}}}}

:http://download.csdn.net/detail/u014600432/8248689

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.