按钮不在表面视图上工作

时间:2012-06-24 23:54:44

标签: android button add surfaceview

我正在研究这个链接的一些源代码 http://android-er.blogspot.com/2010/12/add-overlay-on-camera-preview.html

如果我想添加另一个按钮,我应该在这里做什么,我在xml中添加了按钮,但是它们无法正常工作,它们的源代码是:

LinearLayout layoutbg = (LinearLayout) findViewById(R.id.background);
    layoutbg.setOnClickListener(new LinearLayout.OnClickListener(){

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            switch (v.getId()) {

            case (R.id.previous_btn):
            //some source   
showImage();
                break;

            case (R.id.next_btn):
    //some source           showImage();
                break;

            }

        }

        private void showImage() {
            // TODO Auto-generated method stub
    Toast.makeText(AndroidCamera.this, " User don't  ", Toast.LENGTH_SHORT);
        }

    });
    }

3 个答案:

答案 0 :(得分:2)

使您的活动实施View.OnClickListener

之后在onCreate()方法中执行:

Button btn1= findViewById(R.id.previous_btn);
Button btn2= findViewById(R.id.next_btn);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);

在实施View.OnClickListener后必须覆盖的OnClick()方法中,执行以下操作:

@Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            switch (v.getId()) {

            case (R.id.previous_btn):
            //some source   
showImage();
                break;

            case (R.id.next_btn):
    //some source           showImage();
                break;

            }

        }

答案 1 :(得分:-1)

您应该将侦听器directoy添加到按钮,而不是添加到LinearLayout ...并使用View.OnClickListener

转到你链接的教程的第二部分,“下一篇: - 实现Android Camera的takePicture功能“,有一个代码可以为一个按钮添加一个监听器。

答案 2 :(得分:-1)

问题可能在您的XML中。 Android倾向于最后绘制XML文档底部的视图。这意味着如果您的按钮位于文档中的位置比位于其上方的表面更高,则用户的单击将会触及SurfaceView而不是按钮。

例如,在这种情况下,您的按钮无法点击:

<RelativeLayout
  ... >
    <Button ... />
    <SurfaceView
      android:layout_width="match_parent"
      android:layout_height="match_parent" />
</RelativeLayout>

但是在这种情况下:

<RelativeLayout
  ... >
    <SurfaceView
      android:layout_width="match_parent"
      android:layout_height="match_parent" />
    <Button ... />
</RelativeLayout>