передача изображения из карты в новую активность - PullRequest
0 голосов
/ 21 января 2020

У меня есть просмотр карты, который содержит просмотр текста и просмотр изображения, и ниже у меня есть кнопка, на которой я хочу передать изображение, присутствующее в текущем просмотре карты, следующему назначению при нажатии кнопки. Пожалуйста, помогите передать изображение из текущее представление карты для следующего действия. Это мой код

package com.nitinforges.teestore;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.ViewPager;

import android.animation.ArgbEvaluator;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

import java.io.ByteArrayOutputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {
    private Button uploadimage;
    private ImageView uploadedimage;
    private InputStream inputstream;
    Bitmap bitmap;
    ViewPager viewPager;
    Adapter adapter;
    List<Model> models;
    Integer[] colors = null;
    ArgbEvaluator argbEvaluator = new ArgbEvaluator();


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        models = new ArrayList<>();
        models.add(new Model(R.drawable.tshirt, "Brochure", "Brochure is an informative paper document (often also used for advertising) that can be folded into a template"));
        models.add(new Model(R.drawable.tshirt, "Sticker", "Sticker is a type of label: a piece of printed paper, plastic, vinyl, or other material with pressure sensitive adhesive on one side"));
        models.add(new Model(R.drawable.tshirt, "Poster", "Poster is any piece of printed paper designed to be attached to a wall or vertical surface."));
        models.add(new Model(R.drawable.tshirt, "Namecard", "Business cards are cards bearing business information about a company or individual."));

        adapter = new Adapter(models, this);

        viewPager = findViewById(R.id.viewPager);
        viewPager.setAdapter(adapter);
        viewPager.setPadding(130, 0, 130, 0);

        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            }

            @Override
            public void onPageSelected(int position) {
            }

            @Override
            public void onPageScrollStateChanged(int state) {
            }
        });

        uploadimage=findViewById(R.id.uploaddesign);
        uploadedimage=findViewById(R.id.uploadedimage);

      /*  uploadimage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(this,uploadImage.class);
            }
        });
      */

      uploadimage.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {
              OpenNewPage();
          }
      });
    }

    public void OpenNewPage(){
        Intent intent =new Intent(this,uploadImage.class);
        //intent.putExtra("id",getResources().getIdentifier(draw, "id", "your_package_name"));
        //intent.putExtra()
        startActivity(intent);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        if(resultCode==RESULT_OK&&requestCode==1){
            try {
                inputstream=getContentResolver().openInputStream(data.getData());
                bitmap = BitmapFactory.decodeStream(inputstream);
                uploadedimage.setImageBitmap(bitmap);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
        }
    }
}

То же изображение должно появиться при следующем действии, которое присутствует в текущем представлении карты.

...