0

我想在下一个活动中保存并显示捕获的图像。我已经编写了代码,但它没有工作我需要在该代码中进行哪些修改。

 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?
4

3 回答 3

1

看来您FullScreen Activity没有在AndroidManifest.xml文件中声明。

核实。并声明。

于 2012-10-25T10:05:49.447 回答
0

而不是位图尝试传递图像路径。你已经Uri output; 从这个 get fileapath 中得到了。

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);

在这里阅读。您也可以使用字节数组来做到这一点

于 2012-10-25T10:02:26.233 回答
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 = 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>
于 2012-10-25T10:03:57.850 回答