1

我想从图库中选择图像并将其发送到第二个活动,但图像太大。

我需要调整它的大小,但我不知道该怎么做:

buttonIntent.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {               
            Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
            intent.setType("image/*");
            startActivityForResult(Intent.createChooser(intent, "Select Picture"), REQUEST_GALLERY);

方法论结果

public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_GALLERY && resultCode == RESULT_OK) {

                Uri uri = data.getData();  
                try {
                    bitmap = Media.getBitmap(this.getContentResolver(), uri);
                    imageView1.setImageBitmap(bitmap);

    } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
btnok.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            Intent i=new Intent(Showpic_resumeActivity.this,Showdata_result_resume.class);
            ByteArrayOutputStream bs = new ByteArrayOutputStream();
            bitmap.compress(Bitmap.CompressFormat.PNG, 50, bs);
            i.putExtra("byteArray", bs.toByteArray());
            startActivity(i);

        }
    });

第二次活动

if (getIntent().hasExtra("byteArray")) {

        Bitmap b = BitmapFactory.decodeByteArray(
                getIntent().getByteArrayExtra("byteArray"), 0, getIntent()
                        .getByteArrayExtra("byteArray").length);
        image_resume.setImageBitmap(b);
    }
4

3 回答 3

1

Passing bitmaps从一项活动到另一项活动是risk。最好的方法是pass Uri不要将位图从第一个活动传递到第二个活动,然后在需要时将 Uri 转换为位图。

于 2013-11-05T10:36:17.950 回答
0

首先收集URI

Uri uri = data.getData();  

并将URI从一个活动传递给其他

btnok.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            Intent i=new Intent(Showpic_resumeActivity.this,Showdata_result_resume.class);
            i.setData(uri );// Passing the URI 
            startActivity(i);

        }
    });

*并在 Showdata_result_resume Activity 中取回 URI*

Uri uri=getIntent().getData();
YOUR_IMAGVIEW.setImageURI(uri);// Set URI to your ImageView
于 2013-11-05T10:43:39.920 回答
0

试试这个代码:

Bitmap bmp=BitmapFactory.decodeResource(getResources(), your_image_loc);//ex:R.drawable.image1
int width=200;
int height=200;
Bitmap resizedbitmap=Bitmap.createScaledBitmap(bmp, width, height, true);
img.setImageBitmap(resizedbitmap);
于 2013-11-05T10:43:59.117 回答