导入高分辨率照片Android应用程序无法正常工

时间:2015-03-03 10:07:33

标签: android photo

即时通讯使用基本程序将图像从我的手机导入我写的应用程序,它工作正常。 唯一的问题是,当我要导入高分辨率照片(+9 Mpx)时,照片不会出现

setContentView(R.layout.activity_create_new_user);

contactImgView = (ImageView) findViewById(R.id.ChosenPhoto); 

public void onActivityResult(int reqCode,int resCode, Intent data) {
      contactImgView.setImageURI(data.getData());
}



public void AddPicture(View view) {

    Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(Intent.createChooser(intent,"Select contact image"),1);


}

2 个答案:

答案 0 :(得分:1)

Picasso library

解决方案是使用一个名为Picasso的超棒库来代替使用位图直接加载图像,它的速度非常快。

将picasso jar文件添加到项目中,使用picasso加载像这样的图像

Picasso.with(context).load(new File(title)).centerCrop()
.resize(150, 150).error(R.drawable.ic_launcher).into(imageview);  

其中title是您要加载的图像路径。裁剪,调整大小,错误是可选的。 你也可以从网址加载图片。

答案 1 :(得分:0)

这可能是因为它的分辨率太高了。

您必须使用BitmapFactory方法解码该位图,BitmapFactory.Options首先使用inJustDecodeBounds检测图像分辨率,然后计算outWidth * outHeight> moreThenAppCanHandle你可以使用具有适当因子的inSampleSize对其进行解码,这将适当地降低输出图像分辨率,这意味着消耗更少的内存。

希望这会起作用,并会帮助你。