Ich baue eine einfache Kamera-Anwendung in Android, die eine Kamera Absicht auf einen Klick auf eine Schaltfläche starten würde. Die Kameraabsicht würde dann auf ein Bild klicken, das später in der ImageView in der MainActivity angezeigt würde. Das Problem ist jedoch, dass ich das Bild erfassen kann, aber sobald das Bild erfasst wird, anstatt das Bild anzuzeigen, stürzt die App plötzlich ab.Kann das aufgenommene Bild nicht von der Kamera abrufen
Hier ist mein Code für die App ist:
MainActivity.java
package com.example.suzancruz.cameraapplicaton;
import android.content.Intent;
import android.graphics.Bitmap;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity {
static final int REQUEST_IMAGE_CAPTURE = 123;
ImageView myImageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//Launching the camera
public void launchCamera(View view){
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
//Take a picture and pass results along to onActivityResult
startActivityForResult(intent, REQUEST_IMAGE_CAPTURE);
}
//If you want to return the image taken
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK){
//Get the photo
Bundle extras = data.getExtras();
Bitmap photo = (Bitmap) extras.get("data");
myImageView.setImageBitmap(photo);
}
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.suzancruz.cameraapplicaton.MainActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="launchCamera"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:text="Take Picture"
/>
<ImageView
android:layout_width="300dp"
android:layout_height="300dp"
android:id="@+id/myImageView"
/>
</RelativeLayout>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.suzancruz.cameraapplicaton">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<uses-feature android:name="android.hardware.camera2"></uses-feature>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
</application>
</manifest>
Was sagt Ihr Unfallbericht? – Piyush
@Piyush, verursacht durch: java.lang.NullPointerException: at line "myImageView.setImageBitmap (Foto);" –
Sie haben vergessen, Ihr 'myImageView' zu initialisieren – Piyush