在我的应用程序中,用户可以点击图像缩略图查看完整版本。轻触缩略图时,将在视图层次结构的末尾以代码(即无XML)创建一组新视图,并进行一些缩放和旋转转换,然后显示图像的完整大小和高分辨率版本。点击全尺寸图像将反转转换并从视图层次中移除新视图。
我希望用户也能够按后退键来反转图像转换。然而,我似乎没能抓住关键事件。这就是我目前正在尝试的:
//在图像上设置一个click listener来反转所有内容
frameview.setOnClickListener(新建onClickListener(){
@重写
public void onclick(视图arg0)
{
zoomout();///这很好
}
(});
//将焦点设置在帧上,然后设置一个键侦听器来捕捉后退按钮
frameview.setFocusable(真);
frameview.setFocusableInTouchMode(真);
frameview.requestFocus();
frameview.setOnKeyListener(新建onKeyListener(){
@重写
公共布尔onkey(视图v,int keycode,keyevent事件)
{
//代码根本就没到过这里!!!!
if(keycode==keyevent.keycode_back&&event.getrepeatcount()==0)
{
ZoMoOUT();
回归真实;
}
返回false;
}
(});
编辑:我得到了一些人的回答,他们提供代码片段,以便在扩展活动的类中使用。我在上面复制的代码存在于一个在多个活动中实例化的类中;我的目标是让侦听和捕获back key事件的代码位于同一位置(如onclickListener()),而不是在每个活动中都必须拥有它(并创建长而笨拙的引用从每个活动到缩放对象)。

最佳答案

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if(keyCode == KeyEvent.KEYCODE_BACK)
{
//Your logic or stuff
return true;
}
else
return super.onKeyUp(keyCode, event);
}

使用上面的overide方法处理back key press事件
在这些场景中,使用如下
1)创建如下活动:
/**
 * Top Activity that extends all Activity
 */
package com.com.com;//change your package name

import android.app.Activity;
import android.view.KeyEvent;


public class TopActivity extends Activity {
    protected BaseActivity _activity;


    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        if(keyCode == KeyEvent.KEYCODE_BACK){
            //your stuff if you wanna to have anything
            return true;
        }
        else
            return super.onKeyDown(keyCode, event);
    }
    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        if(keyCode == KeyEvent.KEYCODE_BACK)
        {
            //your stuff if you wanna to have anything
            return true;
        }
        else
            return super.onKeyUp(keyCode, event);
    }

}

2)现在在您的代码中,您的每个活动都扩展了活动性,因此对其进行更改,使其扩展topActivity,如下所示:
public class YourActivity extends TopActivity {

//每个活动的正常代码…
}
就是这样…现在试试看

07-27 16:21