TrackView

android 仿知乎可拖动悬停按钮

View the Project on GitHub

TrackView(仿知乎可拖动悬停按钮)

0

主要功能


## 可配置的属性(请更新至最新版本)

app:inner_text 文字,可动态更改 app:inner_text_color 文字颜色 app:inner_text_size 文字尺寸,单位sp

app:inner_distance 是两个箭头之间的间距 app:inner_length 是每个箭头的边长 app:inner_stroke_width 是两个箭头的线条宽 app:blank_bottom 是底部留白的高度 app:blank_left 是左侧留白的高度 app:blank_right 是右侧留白的高度 app:blank_top 是顶部留白的高度 app:inner_content_color 是圆形内部的填充色 app:inner_stroke_color 是两个箭头的线条颜色 app:out_stroke_color 是外圆线条的颜色 app:out_stroke_width 是外圆线条的线宽


## 展开与闭合、动态更改文字
    findViewById (R.id.open).setOnClickListener (new View.OnClickListener () {
        @Override
        public void onClick(View v) {
            // 展开
            trackView.open ();
        }
    });
    
    findViewById (R.id.close).setOnClickListener (new View.OnClickListener () {
        @Override
        public void onClick(View v) {
            // 闭合
            trackView.close ();
        }
    });
    
    findViewById (R.id.change).setOnClickListener (new View.OnClickListener () {
        @Override
        public void onClick(View v) {
            // 动态更改文字
            trackView.setText ("num:" + num);
            num++;
        }
    }); ```

监听点击事件

        final TrackView trackView = findViewById (R.id.track_view);

        trackView.setOnClickListener (new View.OnClickListener () {
            @Override
            public void onClick(View v) {
                textView.setText ("WORLD");
                Toast.makeText (MainActivity.this,  "click", Toast.LENGTH_SHORT).show ();
            }
        });

原理分析

可参考 仿知乎可拖动悬停按钮

更新日志

v2.0 增加新功能:

  • 展开和关闭功能
  • 文字显示功能 bug修复:
  • 更改v1.1版本尺寸错误的bug
  • 删除默认的padding 优化:
  • 默认值优化,更见美观

v1.1

  • 吸附到侧面时增加动画效果
  • 修复之前版本中手指离开点在边界之外时悬浮球错误的移动的bug
  • 优化细节

v2.1 优化:

  • 使用@IntDef代替枚举
  • 移除getPosition()方法
  • 修复离手后位置瞬移的bug