import android.net.Uri; import android.provider.MediaStore; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.ImageView; import android.widget.Toast; import android.widget.VideoView; import java.io.File; //TODO 请求码的目的就是区别他们到底要执行什么功能 public class MainActivity extends AppCompatActivity { //TODO 拍照的请求码 private static final int REQUEST_IMAGE = 0; //TODO 录像的请求码 private static final int REQUEST_VIDEO = 1; private ImageView iv; private VideoView vv; private String pathImage = "/sdcard/image.jpg"; private String pathVideo = "/sdcard/video.mp4"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); iv = (ImageView) findViewById(R.id.iv); vv = (VideoView) findViewById(R.id.vv); } public void doClick(View view){ switch (view.getId()){ case R.id.btn_image: //TODO 启动拍照功能 2:打开相机进行拍照(当不传入MediaStore.EXTRA_OUTPUT时, // TODO 将通过Intent返回缩略图,反之则通过我们指定的路径返回高清图) Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(new File(pathImage))); startActivityForResult(intent,REQUEST_IMAGE); break; case R.id.btn_video: //TODO 打开相机进行录像,并启动录像功能 intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(new File(pathVideo))); startActivityForResult(intent,REQUEST_VIDEO); break; } } //TODO 请求码 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // super.onActivityResult(requestCode, resultCode, data); if (requestCode== Activity.RESULT_CANCELED){ Toast.makeText(MainActivity.this, "您已取消操作", Toast.LENGTH_SHORT).show(); return; } switch (requestCode){ case REQUEST_IMAGE: //TODO 处理照相返回的数据 if (data == null){ Bitmap bm = BitmapFactory.decodeFile(pathImage); if (bm!=null){ iv.setImageBitmap(bm); } }else { //TODO 返回缩略图 Bitmap bm = data.getParcelableExtra("data"); if (bm!=null) { //TODO Log.e("info", "width" + bm.getWidth() + "heught=" + bm.getHeight()); iv.setImageBitmap(bm); } break; } case REQUEST_VIDEO: Uri uri = data.getData(); vv.setVideoURI(uri); vv.start(); break; } } }
转载于:https://my.oschina.net/u/2899016/blog/750594