抱歉,我的问题很长,但我真的可以使用帮助
因此,我一直在尝试为此相机项目开发一款相机应用。一般来说,我对编码真的很陌生,对Java的了解也不多。我决定使用Furgle的CameraKit库来帮助我。他们说我要做的就是
protected void onResume() {
super.onResume();
CameraView.start();
和
@Override
protected void onPause () {
super.onPause();
CameraView.stop();
}
我应该能够启动和停止尝试创建的相机预览。
但是,当我将此代码添加到我的主要活动中时,得到以下信息:
非静态方法'stop()'/'start()'不能从静态上下文中引用
我已经尝试了一些尝试,例如尝试创建该类的对象并从中调用该方法(我不确定我是否正确地说了这句话)
@Override
protected void onResume() {
super.onResume();
CameraView main = new CameraView()
main.start();
当我尝试运行它时,我得到:
无法解析构造函数CameraView()
我还尝试创建名为“ CameraView”的类的实例,在该实例中,方法为“ start();”。和“ stop();”是。可悲的是,我无法做到这一点。
关键是我尽了我所能理解的一切,但是任何帮助将不胜感激。
在查看了库的代码之后,我发现CameraView类中的start方法或stop方法均未声明为“静态”。所以我真的不知道问题出在哪里以及如何解决
最佳答案
假设您要遵循的教程是这个https://github.com/gogopop/CameraKit-Android#usage ...
当他们说“您所要做的”时,请添加以下代码:
@Override
protected void onResume() {
super.onResume();
cameraView.start();
}
@Override
protected void onPause() {
cameraView.stop();
super.onPause();
}
他们正在与经验丰富的开发人员交谈。他们遗漏的部分是
cameraView
的来源?好吧,第一步是在布局中包含
<CameraView>
。但即使在那之后,您仍然需要找到它并将其分配给cameraView
变量。因此,实际上,您需要以下所有内容:public class MainActivity extends AppCompatActivity {
private CameraView cameraView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); // `activity_main.xml` must have a `<CameraView>` tag with id `camera`
cameraView = (CameraView) findViewById(R.id.camera);
}
@Override
protected void onResume() {
super.onResume();
cameraView.start();
}
@Override
protected void onPause() {
cameraView.stop();
super.onPause();
}
}