我正在研究这个链接的一些源代码 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);
}
});
}
答案 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>