android - 无法用camerakit拍照
问题描述
我正在关注此文档http://docs.camerakit.website/#/ 我正在尝试拍照,但找不到确切的代码。当我在我的 onCreate 方法中编写此代码时,android studio 对我说这不是正确的代码:
camera.setCameraListener(new CameraListener() {
@Override
public void onPictureTaken(byte[] picture) {
super.onPictureTaken(picture);
// Create a bitmap
Bitmap result = BitmapFactory.decodeByteArray(picture, 0, picture.length);
}
});
camera.captureImage();
这是我的整个代码:
public class MainActivity extends AppCompatActivity {
CameraView cameraView;
ImageView img_photo;
Bitmap photo;
Button btt_scatta;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
//Get root view from Activity
final View rootView = getWindow().getDecorView().findViewById(android.R.id.content);
cameraView = (CameraView) findViewById(R.id.camera);
cameraView.setFacing(CameraKit.Constants.FACING_FRONT);
btt_scatta = (Button) findViewById(R.id.btt_scatta);
img_photo = (ImageView) findViewById(R.id.img_photo);
camera.setCameraListener(new CameraListener() {
@Override
public void onPictureTaken(byte[] picture) {
super.onPictureTaken(picture);
// Create a bitmap
Bitmap result = BitmapFactory.decodeByteArray(picture, 0, picture.length);
}
});
btt_scatta.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
photo = getScreenShot(rootView);
img_photo.setImageBitmap(photo);
}
});
}
@Override
protected void onResume() {
super.onResume();
cameraView.start();
}
@Override
protected void onPause() {
cameraView.stop();
super.onPause();
}
//Capture the root view
public static Bitmap getScreenShot(View view) {
View screenView = view.getRootView();
screenView.setDrawingCacheEnabled(true);
Bitmap bitmap = Bitmap.createBitmap(screenView.getDrawingCache());
screenView.setDrawingCacheEnabled(false);
return bitmap;
}
//Store the Bitmap into the phone
public static void store(Bitmap bm, String fileName){
final String dirPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Screenshots";
File dir = new File(dirPath);
if(!dir.exists())
dir.mkdirs();
File file = new File(dirPath, fileName);
try {
FileOutputStream fOut = new FileOutputStream(file);
bm.compress(Bitmap.CompressFormat.PNG, 85, fOut);
fOut.flush();
fOut.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
我已经遵循了整个代码,但没有任何结果。您可以在 github 网站上找到代码:https ://github.com/CameraKit/camerakit-android 我的范围是创建一个应用程序,该应用程序从您的相机拍摄照片,然后在 Imageview 中显示图片。我想说相机可以正常使用此代码。我的相机没有任何问题,但只是在拍照的那一刻。谢谢大家。
解决方案
你应该打电话
camera.captureImage()
在您的 btt_scatta 的点击侦听器中。
推荐阅读
- bash - 文件尚不存在“这超出了 GitHub 的文件大小限制 100.00 MB”
- postgresql - 我们如何检查到目前为止从 Kafka 主题加载到数据库的记录数?
- c# - 通过代码获得多个职位(unity c#)
- python - 由于 USB 设备和蓝牙错误,无法运行 Selenium webdriver
- python-3.x - 防止递归函数中的数据丢失
- python - 如何使用 Tensorflow 中的测试集加载和评估 CNN?
- azure - MS Project Online - 事件处理程序
- arrays - 如果每个元素都可以增加或减少一个值 k,则打印数组所有可能的算法
- r - 在 stat_density_ridges 上覆盖 gom_rect 或 geom_tile
- python - 在python中计算余弦相似度的最快方法