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地址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,081评论 25 709
  • 在Android系统中,有一种特殊的视图,称为SurfaceView,它拥有独立的绘图表面,即它不与其宿主窗口共享...
    一个不掉头发的开发阅读 13,923评论 12 74
  • 佛祖在彼岸打坐 我舌头尖灿烂出莲花 河水沉默 忘不掉过往冬日的冰层 零下的温度凝结出额间冷汗 再用力回首 撞碎颈间...
    银桀阅读 1,819评论 0 1
  • 昨天是我的生日,我收到了一个人的祝福,而她生日的时候我想了好多好多情话送给她。即便只是祝福,我也已经很知足...
    摄心_阅读 2,761评论 0 0
  • 最近做政治主观题明显感觉到审题的重要性,要点就那么多,题量也不是很多,那么应该把时间多花在审题上,现在可以找准明显...
    安妮Queen阅读 1,414评论 0 0

友情链接更多精彩内容