java - 在另一个 Activity 中显示选定的图像

标签 java android bitmap resize uri

我在 stackoverflow 上搜索过但从未找到解决方案

这是我的情况:

我有一个按钮,可以启动选择图像的 Intent

如何按比例调整大小(以保持宽高比)并将其显示在另一个 Activity (在 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);
}

最佳答案

要调整图像大小,请使用 dev.android here 提供的采样技术

使用Lrucache来存储图像。使用所示技术 here

关于java - 在另一个 Activity 中显示选定的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40794771/

相关文章:

android - Android OpenCV MatToBitmap导致黑色图像

java - 如何在 IntelliJ Idea 中禁用 Gradle 守护程序?

java - 架构 java gwt+jsf2+spring 封装

安卓 : Receive data in UDP/TCP

android - 无法为新的 MotionLayout 声明 MotionScene

Android位图压缩不好

c# - 裁剪图像时出现 OutofMemory 错误

java - classCastException 请帮助我了解真正的概念

java - 在 onCreate 中初始化变量,但在 onResume() 中更新它们

android - ejabberd 如何在 xmppframework 中使用 MUC/SUB