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

AndroidManifest.xmlファイルFullScreen Activityで宣言されていないようです。

チェックしてください。そしてそれを宣言します。

于 2012-10-25T10:05:49.447 に答える
0

Bitmap の代わりに imagepath を渡してみてください。既にUri output; From this 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

最初にイメージをバイト配列に変換してからインテントに渡し、次のアクティビティでバンドルからバイト配列を取得し、イメージ (ビットマップ) に変換して 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 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 に答える