In meiner App habe ich eine Schaltfläche1, die die Kamera aufruft, und nachdem das Bild erfasst wurde, muss es in der Gerätegalerie gespeichert werden. Wenn ich auf button2 klicke, muss die Galerie geöffnet und nach einem Bild gefragt werden. Wenn ausgewählt, muss es in der Bildansicht unterhalb dieser Schaltflächen angezeigt werden.Aufrufen einer Kamera aus einer Aktivität, Erfassen eines Bildes und Hochladen auf einen Server
Hier ist mein Code:
package com.android.imageuploading;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class ImageUploadingActivity extends Activity {
private static final int REQUEST_CODE = 1;
private Bitmap bitmap;
private ImageView imageView;
private Button button_1;
public int TAKE_PICTURE = 1;
private Button button_2;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
imageView = (ImageView) findViewById(R.id.image);
button_1 = (Button) findViewById(R.id.button1);
button_1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
startActivityForResult(intent, TAKE_PICTURE);
}
});
button_2 = (Button) findViewById(R.id.button2);
button_2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
pickImage(getCurrentFocus());
}
});
}
public void pickImage(View view) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
startActivityForResult(intent, REQUEST_CODE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK)
try {
// We need to recyle unused bitmaps
if (bitmap != null) {
bitmap.recycle();
}
InputStream stream = getContentResolver().openInputStream(
data.getData());
bitmap = BitmapFactory.decodeStream(stream);
stream.close();
imageView.setImageBitmap(bitmap);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
super.onActivityResult(requestCode, resultCode, data);
}
public static boolean isIntentAvailable(Context context, String action) {
final PackageManager packageManager = context.getPackageManager();
final Intent intent = new Intent(action);
List<ResolveInfo> list = packageManager.queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
return list.size() > 0;
}
}
Das Problem ist, wenn ich das Bild aufzunehmen, es fragt nach speichern oder verwerfen. Als ich speichern, meine App abstürzt klicken Sie auf und sagte:
java.lang.RuntimeException: Ausfall liefern Ergebnis result {die null =, Anfrage = 1, Ergebnis = -1, data = Intent {act = Inline- Daten (hat Extras)}} auf Aktivität {com.android.imageuploading/com.android.imageuploading.ImageUploadingActivity}: java.lang.NullPointerException
Wo muss ich den Code ändern?
möglich Duplikat [Android Aktivität Kamera zu öffnen und ein Bild auf einen Server hochladen] (http: // Stackoverflow .com/questions/10663019/android-activity-zu-öffnen-kamera-und-upload-ein-bild-zu-einem-server) – Sam