了解 Android 中的 Camera2Basic 中的 camera2 API 中的按钮单击
Understanding the button click in camera2 API in Camera2Basic in Android
我试图了解 camera2 api 在 Google Camera2Basic 示例代码中的工作原理。具体来说,'Picture' 按钮如何注册镜头?
在 onCreateViewCreated 中:
@Override
public void onViewCreated(final View view, Bundle savedInstanceState) {
view.findViewById(R.id.picture).setOnClickListener(this);
view.findViewById(R.id.info).setOnClickListener(this);
mTextureView = (AutoFitTextureView) view.findViewById(R.id.texture);
}
所以 setOnClickListener()
注册点击?但是它有什么用呢?我看到 this 已传入,但我不明白发生了什么。
我通常做的是在 onCreateView()
中设置一个按钮并将其 setOnClickListener()
连接到如下操作:
photoButton = (Button)v.findViewById(R.id.picture);
photoButton.setOnClickListener(new View.onSetClickListener() {
@Override
public void onClick(View v) {
//some action
}
});
示例代码中也发生了同样的事情。但是,它看起来有点不同,因为 Camera2BasicFragment
activity 正在实施 OnClickListener
。所以在设置onClickListener的时候给出this
表示这个activity会覆盖onClick
方法。因此,当单击按钮时,class 中的 onClick
方法会自动调用。
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.picture: {
takePicture();
break;
}
case R.id.info: {
Activity activity = getActivity();
if (null != activity) {
new AlertDialog.Builder(activity)
.setMessage(R.string.intro_message)
.setPositiveButton(android.R.string.ok, null)
.show();
}
break;
}
}
}
我试图了解 camera2 api 在 Google Camera2Basic 示例代码中的工作原理。具体来说,'Picture' 按钮如何注册镜头?
在 onCreateViewCreated 中:
@Override
public void onViewCreated(final View view, Bundle savedInstanceState) {
view.findViewById(R.id.picture).setOnClickListener(this);
view.findViewById(R.id.info).setOnClickListener(this);
mTextureView = (AutoFitTextureView) view.findViewById(R.id.texture);
}
所以 setOnClickListener()
注册点击?但是它有什么用呢?我看到 this 已传入,但我不明白发生了什么。
我通常做的是在 onCreateView()
中设置一个按钮并将其 setOnClickListener()
连接到如下操作:
photoButton = (Button)v.findViewById(R.id.picture);
photoButton.setOnClickListener(new View.onSetClickListener() {
@Override
public void onClick(View v) {
//some action
}
});
示例代码中也发生了同样的事情。但是,它看起来有点不同,因为 Camera2BasicFragment
activity 正在实施 OnClickListener
。所以在设置onClickListener的时候给出this
表示这个activity会覆盖onClick
方法。因此,当单击按钮时,class 中的 onClick
方法会自动调用。
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.picture: {
takePicture();
break;
}
case R.id.info: {
Activity activity = getActivity();
if (null != activity) {
new AlertDialog.Builder(activity)
.setMessage(R.string.intro_message)
.setPositiveButton(android.R.string.ok, null)
.show();
}
break;
}
}
}