美文网首页
Android 仿照魅族下载按钮

Android 仿照魅族下载按钮

作者: XINHAO_HAN | 来源:发表于2018-03-30 16:41 被阅读0次

    今天看了一下魅族商店,感觉那个下载按钮还挺好玩的,所以仿照了一下,具体效果图:

    该作品还不太完善,这几天公司也有事,所以有兴趣的哥们可以改改

    1522398417907mz按钮.gif

    使用方法:

    
      xhButton = findViewById(R.id.xhButton);
            xhButton.setXHButtonListener(new XHButton.XHButtonListener() {
                @Override
                public void start() {
                    new Thread(new Runnable() {
                        @Override
                        public void run() {
                            while (true) {
    
                                //模拟数据下载
                                try {
                                    Thread.sleep(30);
                                } catch (InterruptedException e) {
                                    e.printStackTrace();
                                }
    
                                xhButton.setIndex(index);
    
                                index++;
                                if (xhButton.getClose()) {
                                    break;
                                }
    
                            }
                        }
                    }).start();
                }
    
                @Override
                public void index(int position) {
    
                }
    
    
                @Override
                public void end() {
                    index = 0;
                    Log.e("---", "end: " + "结束了" );
    
                }
                /**
                 * 该方法不准确,建议不要使用
                 */
                @Override
                public void pause() {
                    Log.e("---", "end: " + "运行状态" );
                }
            });
    

    实现思路

      先智能适配屏幕大小,如果是WRAP_CONTENT就判断LayoutParams的宽是不是 -2
      匹配方法:
      WRAP_CONTENT = -2;
      MATCH_PARENT =  -1;
    
      如果是包裹[WRAP_CONTENT ],那就自己具体设置一下最小的View宽高度
      如果是撑开[MATCH_PARENT ],那就设置全屏
    
      全屏具体实现为下:
    
    WindowManager systemService = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
    
            DisplayMetrics displayMetrics = new DisplayMetrics();
            systemService.getDefaultDisplay().getRealMetrics(displayMetrics);
            viewW = displayMetrics.widthPixels;
            viewH = displayMetrics.heightPixels;
    

    画矩形:

     int t = (int) ((viewH / 2) * 0.5);
                        int b = (int) ((viewH / 2) * 0.5) + (viewH / 2);
    
                        int mid = (viewH / 2) - ((viewH / 2) - t);
    
                        int l = ((viewW / 2) - mid) - moveInt; //这块是变动的
    
                        int r = ((viewW / 2) + mid) + moveInt;//这块是变动的
    
                        rectF.set(l, t, r, b);
    

    然后使得矩形的左边和右边相互加减就能做出美丽的动画啦~

    下载地址:https://github.com/hanxinhao000/xhButton

    相关文章

      网友评论

          本文标题:Android 仿照魅族下载按钮

          本文链接:https://www.haomeiwen.com/subject/rgpicftx.html