在另一个活动中显示所选图像

时间:2016-11-24 21:33:21

标签: java android bitmap resize uri

我搜索了stackoverflow但从未找到解决方案

以下是我的情况:

我有一个开始意图选择图像的按钮

如何按比例调整大小(保持宽高比)并将其显示在另一个活动上(在imageview中)?

我还想将此已调整大小的图像保存到用户存储。我怎么能这样做?

谢谢!

这是我的代码

MainActivity.java

btn.setOnClickListener(new View.OnClickListener() {

		@Override
        public void onClick(View arg0) {
				Intent intent = new Intent();
	            intent.setType("image/*");
	            intent.setAction(Intent.ACTION_GET_CONTENT);

	            startActivityForResult(
	                    Intent.createChooser(intent, getString(R.string.completeaction)),
	                    PICK_FROM_FILE);        	
        }

    });
}
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
	     Bitmap selectedphoto   = null;

	     super.onActivityResult(requestCode, resultCode, data);
	    if (requestCode == RequestExternal && resultCode == RESULT_OK && null != data) {

	         Uri selectedImage = data.getData();
	         String [] filePathColumn = {MediaStore.Images.Media.DATA};
	         Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
	         cursor.moveToFirst();   
	         int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
	         String filePath = cursor.getString(columnIndex);
	         selectedphoto = BitmapFactory.decodeFile(filePath);
	         cursor.close();
	         Intent intent = new Intent(MainActivity.this,PhotoResized.class);
	         intent.putExtra("data", selectedphoto);
	         startActivity(intent);
	    }
	     }

PhotoResized.java

@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.photoresized);
		img = (ImageView) findViewById(R.id.imageView1);
}

1 个答案:

答案 0 :(得分:0)

用于调整dev.android here

提供的图像使用采样技术

使用Lrucache存储图像。使用显示here

的技巧