Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以将图像传输到3个不同的活动?_Java_Android_Android Intent - Fatal编程技术网

Java 是否可以将图像传输到3个不同的活动?

Java 是否可以将图像传输到3个不同的活动?,java,android,android-intent,Java,Android,Android Intent,我是编程新手。我正在实现一个由3个java类(FirstActivity、SecondActivity和ResultActivity)组成的项目。这张照片拍摄于FirstActivity。我需要将图像传输到SecondActivity,然后从SecondActivity传输到ResultActivity。请注意,FirstActivity和ResultActivity只有imageview可显示。请帮帮我。有人能给我推荐一个示例代码作为指导吗。任何建议都将不胜感激:) 第一项活动: Imag

我是编程新手。我正在实现一个由3个java类(FirstActivity、SecondActivity和ResultActivity)组成的项目。这张照片拍摄于FirstActivity。我需要将图像传输到SecondActivity,然后从SecondActivity传输到ResultActivity。请注意,FirstActivity和ResultActivity只有imageview可显示。请帮帮我。有人能给我推荐一个示例代码作为指导吗。任何建议都将不胜感激:)

第一项活动:

  ImageView imgTaken = findViewById(R.id.imgTaken);
            Bitmap bitmap = ((BitmapDrawable) imgTaken.getDrawable()).getBitmap();
            Intent i = new Intent();
            i.setClass(ProcessImage.this, Match.class);
            i.putExtra("Bitmap", bitmap);
            startActivity(i);
final Bitmap bitmap  = (Bitmap) this.getIntent().getParcelableExtra("Bitmap");
Intent i = new Intent();
            i.setClass(Match.this, Request.class);
            i.putExtra("Bitmap", bitmap);
            startActivity(i);
ImageView imageView = findViewById(R.id.imageView);

Bitmap bitmap  = (Bitmap) this.getIntent().getParcelableExtra("Bitmap");
    imageView.setImageBitmap(bitmap);
第二项活动:

  ImageView imgTaken = findViewById(R.id.imgTaken);
            Bitmap bitmap = ((BitmapDrawable) imgTaken.getDrawable()).getBitmap();
            Intent i = new Intent();
            i.setClass(ProcessImage.this, Match.class);
            i.putExtra("Bitmap", bitmap);
            startActivity(i);
final Bitmap bitmap  = (Bitmap) this.getIntent().getParcelableExtra("Bitmap");
Intent i = new Intent();
            i.setClass(Match.this, Request.class);
            i.putExtra("Bitmap", bitmap);
            startActivity(i);
ImageView imageView = findViewById(R.id.imageView);

Bitmap bitmap  = (Bitmap) this.getIntent().getParcelableExtra("Bitmap");
    imageView.setImageBitmap(bitmap);
成果活动:

  ImageView imgTaken = findViewById(R.id.imgTaken);
            Bitmap bitmap = ((BitmapDrawable) imgTaken.getDrawable()).getBitmap();
            Intent i = new Intent();
            i.setClass(ProcessImage.this, Match.class);
            i.putExtra("Bitmap", bitmap);
            startActivity(i);
final Bitmap bitmap  = (Bitmap) this.getIntent().getParcelableExtra("Bitmap");
Intent i = new Intent();
            i.setClass(Match.this, Request.class);
            i.putExtra("Bitmap", bitmap);
            startActivity(i);
ImageView imageView = findViewById(R.id.imageView);

Bitmap bitmap  = (Bitmap) this.getIntent().getParcelableExtra("Bitmap");
    imageView.setImageBitmap(bitmap);

请帮帮我

欢迎使用Stackoverflow,最简单的答案是将位图设置为静态,如下所示:

public static Bitmap bitmap = null;
bitmap = ((Bitmap) imgTaken.getDrawable()).getBitmap();
开始下一个活动,然后访问该图像,如:

imageView.setImageBitmap(FirstActivity.bitmap);

欢迎使用Stackoverflow,最简单的答案是将位图设置为静态,如下所示:

public static Bitmap bitmap = null;
bitmap = ((Bitmap) imgTaken.getDrawable()).getBitmap();
开始下一个活动,然后访问该图像,如:

imageView.setImageBitmap(FirstActivity.bitmap);

发送时带有
意图
,如下所示:

ByteArrayOutputStream bao = new ByteArrayOutputStream();

bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bao);

byte [] ba = bao.toByteArray();

Intent i = new Intent(context,SecondClass.class);

i.putExtra("bitmap",ba);
Intent
获取数据,如下所示:

byte [] ba1 =getIntent().getByteArrayExtra("bitmap");

Bitmap bitmap = BitmapFactory.decodeByteArray(ba1,0,ba1.length);

发送时带有
意图
,如下所示:

ByteArrayOutputStream bao = new ByteArrayOutputStream();

bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bao);

byte [] ba = bao.toByteArray();

Intent i = new Intent(context,SecondClass.class);

i.putExtra("bitmap",ba);
Intent
获取数据,如下所示:

byte [] ba1 =getIntent().getByteArrayExtra("bitmap");

Bitmap bitmap = BitmapFactory.decodeByteArray(ba1,0,ba1.length);
而不是用这个

final Bitmap bitmap  = (Bitmap) this.getIntent().getParcelableExtra("Bitmap");
做这个改变

 Bitmap bitmap = (Bitmap) getIntent().getExtras().get("Bitmap");
而不是用这个

final Bitmap bitmap  = (Bitmap) this.getIntent().getParcelableExtra("Bitmap");
做这个改变

 Bitmap bitmap = (Bitmap) getIntent().getExtras().get("Bitmap");
最简单的是

  • 创建一个BaseActivity,扩展所有第一个、第二个和第三个结果 带有BaseActivity的活动
  • 将图像位图存储在BaseActivity中声明的变量中
  • 通过BaseActivity,您可以访问任何活动中的位图图像
  • 这是一种最简单的方法,但可能还有其他方法来实现这一点。

    最简单的方法将是

  • 创建一个BaseActivity,扩展所有第一个、第二个和第三个结果 带有BaseActivity的活动
  • 将图像位图存储在BaseActivity中声明的变量中
  • 通过BaseActivity,您可以访问任何活动中的位图图像

  • 这是一个最简单的方法,但可能还有其他方法来实现这一点。

    @student76我不知道你是怎么做到的,但我会详细解释的

  • 创建基本活动类 例如:公共类BaseActivity扩展了AppCompativity{ } 把所有的工作都放在板条箱里

  • 创建您的第一个活动 ex:public类FirstActivity扩展了BaseActivity{ } 在本例中,您将处理图像并将图像存储在基本活动中声明的变量上

  • 创建第二个活动 ex:public类SecondActivity扩展了BaseActivity{ } 现在直接访问在BaseActivity中声明的变量。 现在您可以访问该图像了
  • 创建第二个活动 ex:public class ThirdActivity扩展了BaseActivity{ } 与第二个活动相同。 通过这种方式,您可以在所有活动中访问位图

  • @学生我不知道你是怎么做到的,但我会详细解释的

  • 创建基本活动类 例如:公共类BaseActivity扩展了AppCompativity{ } 把所有的工作都放在板条箱里

  • 创建您的第一个活动 ex:public类FirstActivity扩展了BaseActivity{ } 在本例中,您将处理图像并将图像存储在基本活动中声明的变量上

  • 创建第二个活动 ex:public类SecondActivity扩展了BaseActivity{ } 现在直接访问在BaseActivity中声明的变量。 现在您可以访问该图像了
  • 创建第二个活动 ex:public class ThirdActivity扩展了BaseActivity{ } 与第二个活动相同。 通过这种方式,您可以在所有活动中访问位图


  • 你在用安卓吗?还包括您尝试过的代码。我会尝试使用intent,先生,但遗憾的是,它不起作用@Karan Merpost代码,您已使用question@KaranMer,先生,我刚发了密码。如果我做错了什么,请告诉我。将图像存储在文件中,并在活动中传递其uri。检查这个你在用安卓吗?还包括您尝试过的代码。我会尝试使用intent,先生,但遗憾的是,它不起作用@Karan Merpost代码,您已使用question@KaranMer,先生,我刚发了密码。如果我做错了什么,请告诉我。将图像存储在文件中,并在活动中传递其uri。请勾选Hi sir@Rakesh Kumar,这是否适用于后续活动?像ResultActivity的第二个活动一样?@student76,是的,您可以使用
    setResult(11,i)来完成您好,先生@Rakesh Kumar,这可以应用于后续活动吗?像ResultActivity的第二个活动一样?@student76,是的,您可以使用
    setResult(11,i)来完成
    Hi sir@Faisal,结果活动中“我的图像”视图中未显示任何图像。请帮助:(您是否使用照相机拍摄图像?然后将其存储?是的,先生。我已使用Intent Intent=new Intent(MediaStore.ACTION\u image\u CAPTURE)调用照相机;startActivityForResult(Intent,CAPTURE\u image\u ACTIVITY\u REQUEST\u CODE);好的,那么拍照后您是否将其存储在gallery中?拍照后会自动保存在gallery中,先生。您好,先生@Faisal,在结果活动中,我的图像视图中没有显示任何图像。请帮助:(您是使用相机拍照吗?然后存储吗?是的,先生。我已使用Intent=new Intent调用相机(MediaStore.ACTION\u IMAGE\u CAPTURE);startActivityForResult(意图、捕获\u IMAGE\u活动\u请求\u代码);好的,那么拍照后您是否将其存储在gallery中?捕获后,它会自动保存在gallery中先生。非常感谢先生。我会尝试应用它,如果有什么变化,会通知您:)它不起作用,先生@Suryakant,一个类不能扩展多个类。请帮助。@student76为同一篇文章给出了另一个答案,请仔细阅读。非常感谢先生。我会尝试应用它,如果有什么变化,我会通知你:)它不起作用,先生@Suryakant,一个