我必须在图像视图上放置双击事件。每当我双击图像时,它应该是Zoom.But我发现在Image Veiw中没有像双击这样的事件。 谁能告诉我怎么做? 在此先感谢..
答案 0 :(得分:10)
尝试这种方法:
boolean doubleClick = false;
Handler doubleHandler
doubleClick is true
doubleClick
设置为true并使用处理程序postDelayed
将其设置为false,即500ms后答案 1 :(得分:2)
每当调用onClick()时,如果Handler对象在onClick()中被实例化,则将创建Handler的新实例。 因此,onClick()外部的处理程序不正确。
boolean isDoubleCliked=false;
Handler handler=new Handler();
Runnable r=new Runnable(){
@Override
public void run(){
//Actions when Single Clicked
isDoubleCliked=false;
}
}
tv.setOnClickListener(new onClickListener){
@Override
public void onClick(View view){
if(isDoubleClicked){
//Actions when double Clicked
isDoubleCliked=false;
//remove callbacks for Handlers
handler.removeCallbacks(r);
}else{
isDoubleCliked=true;
handler.postDelayed(r,500);
}
}
}
答案 2 :(得分:1)
您可以使用onDoubleTapListener
。
此link可能会对您有所帮助。
答案 3 :(得分:0)
Maaalte的回答帮助我编写了这段代码。
全局声明doubleClick变量
getPermutationArray(<any number>)
处理双击的逻辑
boolean doubleClick = false;
答案 4 :(得分:0)
最简单的方法是使用 long 变量代替处理程序
private var doubleClickLastTime = 0L
view.setOnClickListener {
if(System.currentTimeMillis() - doubleClickLastTime < 300){
doubleClickLastTime = 0
doAction()
}else{
doubleClickLastTime = System.currentTimeMillis()
}
}