java - Android - 如何在不损失图像质量的情况下将位图图像从一个活动传递到另一个活动
问题描述
我想使用 Activity1 中的 Button 从我的移动图库中导入图像并在 Activity2 中显示它。
我正在使用以下代码来执行此操作:
在 MainAcitivity 中:
public void pickImageFromGallery(){
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI);
intent.setType("image/*");
intent.putExtra("crop", "true");
intent.putExtra("scale", false);
intent.putExtra("outputX", 256);
intent.putExtra("outputY", 256);
intent.putExtra("aspectX", 0);
intent.putExtra("aspectY", 0);
intent.putExtra("return-data", true);
startActivityForResult(intent, PICK_PHOTO);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK && requestCode == PICK_PHOTO) {
final Bundle extras = data.getExtras();
if (extras != null) {
//Get image
Bitmap myPic = extras.getParcelable("data");
ByteArrayOutputStream stream = new ByteArrayOutputStream();
myPic.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] byteArray = stream.toByteArray();
Intent intent = new Intent(this, MainActivity2.class);
intent.putExtra("picture", byteArray);
startActivity(intent);
}
}
在 MainActivity2 中:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Bundle extras = getIntent().getExtras();
ImageView imageView = (ImageView)findViewById(R.id.myImage);
byte[] byteArray = extras.getByteArray("picture");
Bitmap bmp = BitmapFactory.decodeByteArray(byteArray,0,byteArray.length);
imageView.setImageBitmap(bmp);
}
我正在导入高质量图像,但 ImageView 中的图像质量非常低。谁能告诉我如何解决这个问题?
解决方案
推荐阅读
- sql - 在 Postgresql 中控制 IF 的 3 个条件
- amazon-web-services - 将 AWS S3 用于后端应用程序的最佳方式
- c# - 如何访问用户在 C# 控制台应用程序中设置的字符串?
- html - FIeldset 不想缩小到 360 像素以下
- java - 如何用杰克逊解组对象
- c# - 如何通过 VS 插件/扩展更改 Visual Studio 解决方案资源管理器中的项目图标
- c++ - 在 C++ 中此输出的可能原因是什么?
- c++ - 当依赖于代码时,如何从 Cpp 执行操作系统命令?
- django - 我们可以在没有 Crispy Forms Template 的情况下创建 django 表单吗?
- powershell - 在 Get-ChildItem 之后找不到 Powershell Get-Content 文件