Это xml-упражнение 1:
<ImageView
android:id="@+id/imageView"
android:layout_width="136dp"
android:layout_height="143dp"
android:layout_marginTop="92dp"
android:layout_weight="1"
android:background="@drawable/image_border"
android:contentDescription="@string/todo"
android:padding="1dp"
android:scaleType="fitXY"
android:src="@drawable/ic_image_black_24dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.098"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.952" />
Это java-файл занятия 1, где пользователь выбирает изображение в телефоне галереи и отображает его в упражнении 1:
package com.example.ProPentest;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import java.io.IOException;
public class form2 extends AppCompatActivity implements AdapterView.OnItemSelectedListener {
private static final String TAG = form2.class.getSimpleName();
private int PICK_IMAGE_REQUEST = 1;
Button btn;
EditText et1, et2, et3, et4, et5;
String st, st1, st2, st3, st4, st5, st6, st7;
Bitmap bmp;
Spinner sp1, sp2, sp3;
ImageView iv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_form2);
btn =findViewById( R.id.finish );
et1=findViewById( R.id.editText2 );
et2=findViewById( R.id.editText );
et3=findViewById( R.id.assettext );
et4=findViewById( R.id.et4 );
et5=findViewById( R.id.et5 );
sp1=findViewById( R.id.spinner );
sp2=findViewById( R.id.spinner2 );
sp3=findViewById( R.id.spinner3 );
iv=findViewById( R.id.imageView );
btn.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent( form2.this, display.class );
st = et1.getText().toString();
st1 = et2.getText().toString();
st2 = et3.getText().toString();
st3 = et4.getText().toString();
st4 = et5.getText().toString();
st5 = sp1.getSelectedItem().toString();
st6 = sp2.getSelectedItem().toString();
st7 = sp3.getSelectedItem().toString();
bmp = iv.getDrawingCache();
i.putExtra( "Name", st );
i.putExtra( "Date", st1 );
i.putExtra( "Asset", st2 );
i.putExtra( "Repro", st3 );
i.putExtra( "Note", st4 );
i.putExtra( "Spinner", st5 );
i.putExtra( "Spinner2", st6 );
i.putExtra( "Spinner3", st7 );
i.putExtra( "imageView2", bmp );
startActivity( i );
finish();
}});
Button selectImage = findViewById(R.id.uploadImage);
selectImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
chooseImage();
}
});
}
private void chooseImage() {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"),
PICK_IMAGE_REQUEST);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String text = parent.getItemAtPosition( position ).toString();
Toast.makeText( parent.getContext(), text, Toast.LENGTH_SHORT ).show();
}
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null &&
data.getData() != null) {
Uri uri = data.getData();
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
// Log.d(TAG, String.valueOf(bitmap));
ImageView imageView = findViewById(R.id.imageView);
imageView.setImageBitmap(bitmap);
} catch (IOException e) {
e.printStackTrace();
}
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
}
Этоxml Activity2:
<ImageView
android:id="@+id/imageView2"
android:layout_width="190dp"
android:layout_height="248dp"
android:layout_weight="1"
android:background="@drawable/image_border"
android:contentDescription="@string/todo"
android:padding="1dp"
android:scaleType="fitXY"
android:src="@drawable/ic_image_black_24dp" />
Это Java-файл упражнения 2:
package com.example.ProPentest;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class display extends AppCompatActivity {
TextView tv1, tv2, tv3, tv4, tv5, tv6, tv7, tv8;
String st, st1, st2, st3, st4, st5, st6, st7;
Bitmap bmp;
ImageView iv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_display );
tv1 = findViewById( R.id.company_name );
tv2 = findViewById( R.id.date );
tv3 = findViewById( R.id.assettext );
tv4 = findViewById( R.id.reprotext );
tv5 = findViewById( R.id.notetext );
tv6 = findViewById( R.id.basevultext );
tv7 = findViewById( R.id.likelitext );
tv8 = findViewById( R.id.priotext );
iv = findViewById( R.id.imageView2 );
st = getIntent().getExtras().getString( "Name" );
tv1.setText( st );
st1 = getIntent().getExtras().getString( "Date" );
tv2.setText( st1 );
st2 = getIntent().getExtras().getString( "Asset" );
tv3.setText( st2 );
st3 = getIntent().getExtras().getString( "Repro" );
tv4.setText( st3 );
st4 = getIntent().getExtras().getString( "Note" );
tv5.setText( st4 );
st5 = getIntent().getExtras().getString( "Spinner" );
tv6.setText( st5 );
st6 = getIntent().getExtras().getString( "Spinner2" );
tv7.setText( st6 );
st7 = getIntent().getExtras().getString( "Spinner3" );
tv8.setText( st7 );
bmp = getIntent().getExtras().getParcelable("imageView2");
iv.setImageBitmap( bmp );
}}
Я попытался передать изображение-видение другому типу изображения-вида2, но я привел к белому изображению. Я хочу, чтобы изображение, выбранное пользователем из галереи, передавалось из imageview1 в imageview2 внутри другого действия.