首页 > 解决方案 > 从图库中获取图像并在 android studio 的另一个活动中预览它

问题描述

我想通过按下按钮来选择图库中的图像并在另一个活动中预览所选图像。

主要活动

public class MainActivity extends AppCompatActivity {

public  static final  int REQUEST_CODE=1234;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

}


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(requestCode==REQUEST_CODE && resultCode==Activity.RESULT_OK)
    {

        Intent intent = new Intent(this, Main2Activity.class);
        intent.putExtra("picture",REQUEST_CODE);
        startActivity(intent);

    }
}


public  void send(View view){

    Intent intent=new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(Intent.createChooser(intent,"picture"),REQUEST_CODE);

}

从此代码按钮访问图库并将其传递给 Main2Activity 。

Main2Activity

public class Main2Activity extends AppCompatActivity {

ImageView iv;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);

    Intent intent = getIntent();
    Bitmap bitmap = (Bitmap) intent.getParcelableExtra("picture");
    iv = (ImageView)findViewById(R.id.imageView);
    iv.setImageBitmap(bitmap);

}
}

在这段代码中,我们可以打开图库并选择一个图像。选择图像后,它会打开第二个活动但不预览图像。如何预览图像?

标签: android

解决方案


主要活动

@Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            if(requestCode==REQUEST_CODE && resultCode==Activity.RESULT_OK)
            {
                Uri selectedImageUri = data.getData( );

                Intent i= new Intent(MainActivity.this,Main2Activity.class);
                i.setData(selectedImageUri);
                startActivity(i);
            }
        }

Main2Activity

public class Main2Activity extends AppCompatActivity {

        private ImageView imageView;
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_second);

            imageView = findViewById(R.id.img);

            if(getIntent()!= null){
            Uri imageUri=getIntent().getData();
            imageView.setImageURI(imageUri);

            }
        }
    }

推荐阅读