Android仿游戏摇杆 自定义控件

Android上使用FrameLayout制作游戏摇杆控件 先看效果图
这里写图片描述

首先设置监听

view.setCallback(callback);
private CircleViewByImage.ActionCallback callback = new CircleViewByImage.ActionCallback() {
        @Override
        public void forwardMove() {
            showAction("Up");
        }

        @Override
        public void backMove() {
            showAction("Down");
        }

        @Override
        public void leftMove() {
            showAction("Left");
        }

        @Override
        public void rightMove() {
            showAction("Right");
        }

        @Override
        public void centerMove() {
            showAction("Move a little in center area");

        }

        @Override
        public void centerClick() {
            showAction("Click on center area");
        }

        @Override
        public void actionUp() {
            showAction("Action up");
        }
    }

在每个回调的方法里需要做一个处理,因为每个回调方法在短时间内会因手指头微动而触发多次,所以只需要根据时间(下面是1000ms)来做简单的判断即可

long lastTime;

private void showAction(String str){
  long curTime = System.currentTimeMillis();
  if (curTime > 1000 + lastTime) {
    // TODO: 2017/4/10 your action code 
    lastTime = curTime;
  }
}

缺点

该控件是在UI线程执行的,不是通过SurfaceView绘制的。
demo地址

你可能感兴趣的:(Android仿游戏摇杆 自定义控件)