要写相机权限
Activity
package com.example.day20rk;
import android.content.Intent;
import android.data .Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.provider.MediaStore;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
public class CameraActivity extends AppCompatActivity {
private ImageView iv_image;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_camera);
iv_image = findViewById(R.id.iv_image);
iv_image.set Listener(new View. Listener() {
private Button del;
private Button album;
private Button camera;
@Override
public void (View v) {
View view = View.inflate(CameraActivity.this, R.layout.pop_camera, null);
final PopupWindow pop = new PopupWindow(view,LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.MATCH_PARENT);
pop.showAsDropDown(v,0,0);
camera = view.findViewById(R.id.camera);
album = view.findViewById(R.id.album);
del = view.findViewById(R.id.del);
camera.set Listener(new View. Listener() {
@Override
public void (View v) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.addCategory(\"android.intent.category.DEFAULT\");
startActivityForResult(intent, 1);
}
});
album.set Listener(new View. Listener() {
@Override
public void (View v) {
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType(\"image/*\");
startActivityForResult(intent, 2);
}
});
del.set Listener(new View. Listener() {
@Override
public void (View v) {
pop.dismiss();
}
});
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode){
//相机
case 1:
Bitmap bitmap = data.getParcelableExtra(\"data\");
iv_image.setImageBitmap(bitmap);
break;
//相册
case 2:
//获取系统返回的照片Uri
Uri uri = data.getData();
String[] filePathColumn = {MediaStore.Images.Media.DATA};
//从系统中查询指定Uri相应的照片
Cursor cursor = getContentResolver().query(uri,filePathColumn,null,null,null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
//获取照片路径
String picturePath = cursor.getString(columnIndex);
cursor.close();
Bitmap bmp = BitmapFactory.decodeFile(picturePath);
iv_image.setImageBitmap(bmp);
break;
}
}
}
继续阅读与本文标签相同的文章
上一篇 :
代码不规范?985,211我也不要!
-
POLARDB MySQL 8.0 正式上线商用
2026-05-18栏目: 教程
-
MySQL 推出 90核 CPU 720GB 内存 独占物理机规格
2026-05-18栏目: 教程
-
基于 RocketMQ 的同城双活架构在美菜网的挑战与实践
2026-05-18栏目: 教程
-
账户系统如何应对高并发、热点账户等问题
2026-05-18栏目: 教程
-
阿里雷卷:Reactive 基金会的成立将对开发方式带来哪些影响?
2026-05-18栏目: 教程
