我正在开发一个应用程序,只是为了打开相机并捕获图像。我对此很陌生,我不明白我做错了什么。请有人帮我解决这个问题,我在这里发布我的 java 代码和 XML 代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView2"
android:layout_width="206dp"
android:layout_height="172dp"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:text="2nd activity" />
<Button
android:id="@+id/button"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_alignParentBottom="true"
android:layout_marginBottom="69dp"
android:layout_toEndOf="@+id/textView2"
android:text="Camera"
app:layout_constraintBottom_toTopOf="@+id/textView2"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0" />
<ImageView
android:id="@+id/camera"
android:layout_width="100dp"
android:layout_height="92dp"
android:layout_above="@+id/button"
android:layout_alignParentEnd="true"
android:layout_marginBottom="119dp"
android:layout_marginEnd="31dp"
app:layout_constraintBottom_toTopOf="@+id/textView2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/button"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0"
app:srcCompat="@android:drawable/ic_menu_camera" />
</RelativeLayout>
Java代码
package com.chiragsharmaengineer.linked_layouts;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class newActivity extends Activity {
final int CAMERA_PIC_REQUEST = 1888;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Get the view from new_activity.xml
setContentView(R.layout.activity_new);
//Camera
Button camera = (Button) findViewById(R.id.button);
camera.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent cameraIntent = new
Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
}
});
}
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
if (requestCode == CAMERA_PIC_REQUEST) {
Bitmap image = (Bitmap) data.getExtras().get("data");
ImageView imageview = findViewById(R.id.camera); //sets imageview as
the bitmap
imageview.setImageBitmap(image);
}
}
}
ImageView 选项未显示在布局上,每当我单击相机按钮时,它只会打开以前的布局。应用程序没有崩溃,但实际上没有做任何事情。如果您能提供详细的解决方案,我将不胜感激。
最佳答案
试试这个
package com.chiragsharmaengineer.linked_layouts;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class newActivity extends Activity {
final int CAMERA_PIC_REQUEST = 1888;
ImageView imageview ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Get the view from new_activity.xml
setContentView(R.layout.activity_new);
//Camera
imageview = findViewById(R.id.camera); //sets imageview as
Button camera = (Button) findViewById(R.id.button);
camera.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent cameraIntent = new
Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CAMERA_PIC_REQUEST ) {
Bitmap image = (Bitmap) data.getExtras().get("data");
imageview.setImageBitmap(image);
}
}
关于java - 相机不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48109079/