android - 如何将触摸监听器添加到表面 View ?

标签 android

我是 Android 的新手,所以如果之前问过,请原谅!

我正在玩一些相机代码(在线找到),我想在屏幕上显示/隐藏一些按钮。当用户触摸屏幕时,我希望它捕获图像。

我的设置:

1. 主要 Activity :

public class CameraDemo extends Activity {
/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_inuse);

        preview = new Preview(this);

        ((FrameLayout) findViewById(R.id.preview)).addView(preview);

... ...  
// rest of the code that captures the image when a button is pressed.
// the button is defined in main.xml with button id ButtonClicked
}

2。 预览类如下所示:

class Preview extends SurfaceView implements SurfaceHolder.Callback {

    SurfaceHolder mHolder;
    public Camera camera;

    Preview(Context context) {
        super(context);

        // Install a SurfaceHolder.Callback so we get notified when the
        // underlying surface is created and destroyed.
        mHolder = getHolder();
        mHolder.addCallback(this);
        mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}

我的问题是,

  1. 我如何添加触摸功能,以便用户可以触摸预览(比如说一秒钟,或者只是快速触摸)并发生一些事情? (说图片保存)

  2. 表面上会出现一个按钮,例如“下一步”按钮?

最佳答案

@Override
public boolean onTouchEvent(MotionEvent event) {
    return super.onTouchEvent(event);
}

在你的预览类中,MotionEvent 对象会告诉你它是什么类型的触摸(以及位置等),让你做任何你想做的事。

关于android - 如何将触摸监听器添加到表面 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5066775/

相关文章:

android - 如何以编程方式关闭 Android 手机?

java - 强制关闭!!用于分配 RGB 值 0-255 中的随机颜色的按钮

android - EditText OnFocusChangeListener() 不隐藏光标和 View

java - JSONArray 数据不会显示在 Fragment 上

android - 值没有被插入到 Firebase 数据库中

android - TarsosDSP 和 SurfaceView 多线程问题

java - 如何在 ScrollView 中更改按钮触摸时的颜色?

java - android webview.loadUrl 不会加载另一个网页

android - adb shell su -c 命令抛出权限被拒绝(我的手机已 Root )

android - 在 `ActionBar` 项目单击时显示弹出菜单