這里寫圖片描述
首先設(shè)置監(jiān)聽
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");
}
}
在每個(gè)回調(diào)的方法里需要做一個(gè)處理,因?yàn)槊總€(gè)回調(diào)方法在短時(shí)間內(nèi)會(huì)因手指頭微動(dòng)而觸發(fā)多次,所以只需要根據(jù)時(shí)間(下面是1000ms)來(lái)做簡(jiǎn)單的判斷即可
long lastTime;
private void showAction(String str){
long curTime = System.currentTimeMillis();
if (curTime > 1000 + lastTime) {
// TODO: 2017/4/10 your action code
lastTime = curTime;
}
}
缺點(diǎn)
該控件是在UI線程執(zhí)行的,不是通過(guò)SurfaceView繪制的。
demo地址