android控制手机拍照代码,实现调用Android手机的拍照功能

1 packagecom.example.takepictrures;2

3 importjava.io.ByteArrayOutputStream;4 importjava.io.File;5 importjava.io.IOException;6 importjava.text.SimpleDateFormat;7 importjava.util.Date;8 importcom.example.util.saveToSdCard;9 importandroid.net.Uri;10 importandroid.os.Bundle;11 importandroid.os.Environment;12 importandroid.provider.MediaStore;13 importandroid.provider.MediaStore.Audio.Media;14 importandroid.app.Activity;15 importandroid.content.ContentValues;16 importandroid.content.Intent;17 importandroid.graphics.Bitmap;18 importandroid.graphics.BitmapFactory;19 importandroid.view.Menu;20 importandroid.view.View;21 importandroid.view.View.OnClickListener;22 importandroid.widget.Button;23 importandroid.widget.ImageView;24

25 public class MainActivity extends Activity implementsOnClickListener {26

27 publicButton button;28 private static final int PHOTO_GRAPH = 1;//����

29 publicImageView imageView;30

31 @Override32 protected voidonCreate(Bundle savedInstanceState) {33 super.onCreate(savedInstanceState);34 setContentView(R.layout.activity_main);35 imageView = (ImageView) this.findViewById(R.id.imgview);36 button = (Button) this.findViewById(R.id.btnTakePic);37 button.setOnClickListener(this);38

39 }40

41 @Override42 public booleanonCreateOptionsMenu(Menu menu) {43 //Inflate the menu; this adds items to the action bar if it is present.

44 getMenuInflater().inflate(R.menu.main, menu);45 return true;46 }47

48 @Override49 public voidonClick(View view) {50 switch(view.getId()) {51 caseR.id.btnTakePic:52 Intent intent = newIntent(MediaStore.ACTION_IMAGE_CAPTURE);53 startActivityForResult(intent, PHOTO_GRAPH);54 break;55

56 default:57 break;58 }59 }60

61 @Override62 protected void onActivityResult(int requestCode, intresultCode, Intent data) {63 if (resultCode ==NONE)64 return;65

66 if (requestCode ==PHOTO_GRAPH) {67

68 File picture = newFile(Environment.getExternalStorageDirectory()69 + "/temp.jpg");70 //startPhotoZoom(Uri.fromFile(picture));

71 }72

73 if (data == null)74 return;75

76 //if (requestCode == PHOTO_ZOOM) {77 //startPhotoZoom(data.getData());78 //}

79

80 String fileName = "";81 if (requestCode == 1) {82 Bundle extras =data.getExtras();83 if (extras != null) {84 Bitmap photo = extras.getParcelable("data");85 ByteArrayOutputStream stream = newByteArrayOutputStream();86 photo.compress(Bitmap.CompressFormat.JPEG, 75, stream);//(0-100)ѹ���ļ�

87

///这儿保存到sd卡就Ok了

88 try{89 fileName =saveToSdCard.getFileName();90 saveToSdCard.saveMyBitmap(photo, fileName);91 } catch(IOException e) {92 //TODO Auto-generated catch block

93 e.printStackTrace();94 }95 imageView.setImageBitmap(photo);96 }97 }98 super.onActivityResult(requestCode, resultCode, data);99 }100

101

102 //public void startPhotoZoom(Uri uri) {103 //Intent intent = new Intent("com.android.camera.action.CROP");104 //intent.setDataAndType(uri, IMAGE_UNSPECIFIED);105 //intent.putExtra("crop", "true");106 // //aspectX aspectY107 //intent.putExtra("aspectX", 1);108 //intent.putExtra("aspectY", 1);109 // //outputX outputY110 //intent.putExtra("outputX", 300);111 //intent.putExtra("outputY", 500);112 //intent.putExtra("return-data", true);113 //startActivityForResult(intent, PHOTO_RESOULT);114 //}

115

116 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Flutter的camera插件来实现Android Studio中调用手机模拟器摄像头实现拍照功能。以下是实现步骤: 1. 在pubspec.yaml文件中添加camera插件依赖: ``` dependencies: camera: ^0.9.4+5 ``` 2. 在Flutter项目中引入camera插件: ``` import 'package:camera/camera.dart'; ``` 3. 初始化摄像头: ``` List<CameraDescription> cameras; Future<void> initCamera() async { cameras = await availableCameras(); // 选择第一个摄像头 final firstCamera = cameras.first; final camera = CameraController( firstCamera, ResolutionPreset.medium, ); await camera.initialize(); setState(() { _camera = camera; }); } ``` 4. 在Flutter页面中显示摄像头预览: ``` @override void initState() { super.initState(); initCamera(); } @override void dispose() { _camera.dispose(); super.dispose(); } @override Widget build(BuildContext context) { return Scaffold( body: _camera == null ? Container() : AspectRatio( aspectRatio: _camera.value.aspectRatio, child: CameraPreview(_camera), ), ); } ``` 5. 实现拍照功能: ``` void takePicture() async { final picturePath = join( (await getTemporaryDirectory()).path, '${DateTime.now()}.png', ); await _camera.takePicture(picturePath); } ``` 6. 在Flutter页面中添加一个按钮,调用takePicture()方法实现拍照: ``` FloatingActionButton( onPressed: takePicture, child: Icon(Icons.camera_alt), ), ``` 完成上述步骤后,您就可以在Android Studio中调用手机模拟器摄像头实现拍照功能了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值