public class MainActivity extends AppCompatActivity {
ImageView image;
public static final int REQ_1 = 1; //请求码
public static final int REQ_2 = 2; //请求码
private String mFilePath; //文件路径
private Bitmap mBitmap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
image = (ImageView) findViewById(R.id.iv_img);
//初始化路径 记得在清单文件中加入 读写sd卡的权限
mFilePath = Environment.getExternalStorageDirectory().getPath();
mFilePath = mFilePath + "/"+System.currentTimeMillis()+ ".png";//斜杠很重要 有可能是会影响 onActivityResult 调用问题 ???
}
public void start1(View view) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, REQ_1);
}
public void start2(View view) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Log.d("MainActivity", mFilePath);
Uri photoUri = Uri.fromFile(new File(mFilePath));
intent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri); // 意思改变图片保存路径为我们设置的路径
startActivityForResult(intent, REQ_2);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (requestCode == REQ_1) {
Bundle bundle = data.getExtras();
Bitmap bitmap = (Bitmap) bundle.get("data");
image.setImageBitmap(bitmap);
} else if (requestCode == REQ_2) {
FileInputStream mFis;
try {
mFis = new FileInputStream(mFilePath); //将该路径的图片转换为一个流
Log.d("MainActivity", "mFis:" + mFis);
//将输入流转发为一个 bitmap对象
mBitmap = BitmapFactory.decodeStream(mFis);
Log.d("MainActivity", "mBitmap:" + mBitmap);
//显示图片
image.setImageBitmap(mBitmap);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
}
}
相机拍照
最新推荐文章于 2024-03-09 11:07:33 发布