ユーザーがクリックして画像をロードする必要がある画像ビューを配置する必要があるアプリを作成しています。クリックした後、ユーザーが携帯電話自体から保存された画像をロードするか、カメラから新しいショットを撮るかを選択するオプションを提供します。
この質問は冗長かもしれませんが、ここで明らかにされた同様の質問/問題のほとんどは、私がやろうとしていることに到達しませんでした.
Ps Eclipse 4.2 (JUNO) SDK がインストールされた Android API15 に取り組んでいます。
エラーが発生するメインアクティビティのスニペットコードは次のとおりです。
package test.imgbyte.conerter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import android.net.Uri;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.widget.Button;
import android.widget.ImageView;
import android.view.View;
public class FindImgPathActivity extends Activity
{
private Uri mImageCaptureUri;
static final int CAMERA_PIC_REQUEST = 1337;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.imgfilepath);
Button camera = (Button) findViewById(R.id.btnLoad);
camera.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mImageCaptureUri);
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CAMERA_PIC_REQUEST)
{
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
ImageView image = (ImageView) findViewById(R.id.imgLoaded);
image.setImageBitmap(thumbnail);
String pathToImage = mImageCaptureUri.getPath();
// pathToImage is a path you need.
// If image file is not in there,
// you can save it yourself manually with this code:
File file = new File(pathToImage);
FileOutputStream fOut;
try
{
fOut = new FileOutputStream(file);
thumbnail.compress(Bitmap.CompressFormat.JPEG, 100, fOut); // You can choose any format you want
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
}
}
}
LogCat から取得したエラーは次のようなものです。
11-05 19:23:11.777: E/AndroidRuntime(1206): FATAL EXCEPTION: main
11-05 19:23:11.777: E/AndroidRuntime(1206): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1337, result=-1, data=Intent { act=inline-data (has extras) }} to activity {test.imgbyte.conerter/test.imgbyte.conerter.FindImgPathActivity}: java.lang.NullPointerException