我想在下一个活动中保存并显示捕获的图像。我已经编写了代码,但它不能在我的代码中进行哪些修改。
camera.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.d("Coming in the camera intent","coming in yhe camera intent");
String filePath = Environment.getExternalStorageDirectory()+ "/s1.jpeg";
File file = new File(filePath);
Uri output = Uri.fromFile(file);
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
}
});
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) {
Log.d("Coming in the if loop","coming in the if loop");
Bitmap photo = (Bitmap) data.getExtras().get("data");
Intent i1=new Intent(MyMenu.this,FullScreen.class);
i1.putExtra("photooo",photo);
startActivity(i1);
}
}
和我要保存并显示图像的接收活动
image=(ImageView)findViewById(R.id.image);
note=(ImageButton)findViewById(R.id.note);
tick=(ImageButton)findViewById(R.id.tick);
cross=(ImageButton)findViewById(R.id.cross);
Intent intent = getIntent();
Bitmap photo = (Bitmap) intent.getParcelableExtra("photooo");
image.setImageBitmap(photo);
}
堆叠
10-25 12:50:30.459: E/AndroidRuntime(27740): java.lang.RuntimeException: Unable to resume activity {com.example.babysnap/com.example.babysnap.MyMenu}: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1888, result=-1, data=Intent { act=inline-data (has extras) }} to activity {com.example.babysnap/com.example.babysnap.MyMenu}: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.babysnap/com.example.babysnap.FullScreen}; have you declared this activity in your AndroidManifest.xml?
答案 0 :(得分:1)
您的FullScreen Activity
似乎未在 AndroidManifest.xml 文件中声明。
检查一下。 并宣布它。
答案 1 :(得分:0)
而不是Bitmap尝试传递imagepath。你已经获得了Uri output;
来自这个获取文件路径。
String imagepath=output.getPath(); then intent.putExtra("imagepath",imagepath)
在其他活动中获取此字符串:
String path= getIntent().getStringExtra("imagepath"). then
Bitmap myBitmap = BitmapFactory.decodeFil(path);
ImageView myImage = (ImageView) findViewById(R.id.imageviewTest);
myImage.setImageBitmap(myBitmap);
Read here。您也可以使用字节数组
来完成答案 2 :(得分:0)
首先将图像转换为字节数组然后传入Intent并在下一个活动中从Bundle获取字节数组并转换为图像(位图)并设置为ImageView。
将位图转换为字节数组: -
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
将字节数组传递给intent: -
Intent intent = new Intent(this, NextActivity.class);
intent.putExtra("picture", byteArray);
startActivity(intent);
从Bundle获取字节数组并转换为位图图像: -
Bundle extras = getIntent().getExtras();
byte[] byteArray = extras.getByteArray("picture");
Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
ImageView image = (ImageView) findViewById(R.id.imageView1);
image.setImageBitmap(bmp);
并在Androidmanifest.xml中写下声明Activity的代码。
<activity
android:name=".FullScreen"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>