在上面代码中加一个打开相机的代码
时间: 2024-04-04 16:33:34 浏览: 125
打开图片的代码
好的,下面是修改后的代码,增加了一个按钮,可以打开相机拍照。
1. 在布局文件中添加三个按钮
```
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/gallery_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="打开相册"/>
<Button
android:id="@+id/camera_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="打开相机"/>
<Button
android:id="@+id/baidu_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="打开百度"/>
</LinearLayout>
```
2. 在 Activity 中处理按钮点击事件
```
public class MainActivity extends AppCompatActivity {
private static final int REQUEST_CODE_OPEN_GALLERY = 1;
private static final int REQUEST_CODE_OPEN_CAMERA = 2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取按钮对象
Button galleryButton = findViewById(R.id.gallery_button);
Button cameraButton = findViewById(R.id.camera_button);
Button baiduButton = findViewById(R.id.baidu_button);
// 设置按钮点击事件
galleryButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 跳转到相册
Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, REQUEST_CODE_OPEN_GALLERY);
}
});
cameraButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 跳转到相机
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, REQUEST_CODE_OPEN_CAMERA);
}
});
baiduButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 打开百度网址
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);
}
});
}
// 处理跳转到相册或相机后的返回结果
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK && data != null) {
if (requestCode == REQUEST_CODE_OPEN_GALLERY) {
// 处理相册返回结果
Uri selectedImage = data.getData();
// TODO: 用选中的图片做一些事情
} else if (requestCode == REQUEST_CODE_OPEN_CAMERA) {
// 处理相机返回结果
Bundle extras = data.getExtras();
Bitmap imageBitmap = (Bitmap) extras.get("data");
// TODO: 用拍摄的照片做一些事情
}
}
}
}
```
这个示例代码中,我们在 Activity 中获取了三个按钮对象,并设置了它们的点击事件。其中,打开相册的按钮点击事件跳转到相册,打开相机的按钮点击事件跳转到相机,而打开百度的按钮点击事件则打开了一个 Intent 并设置了打开的网址。同时,我们还处理了跳转到相册或相机后的返回结果,分别获取了选中的图片的 Uri 和拍摄的照片的 Bitmap 对象。
阅读全文