如何解决从Gallery获取图片无法在设备上运行,但可以在模拟器上运行
|| 我正在使用startActivityForResult从android画廊获取图片,但是这在我的设备上不起作用,但是在模拟器上可以正常工作。 我开始这样的活动:startActivityForResult(new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI),SELECT_IMAGE);
我读到这样的结果:
@Override
public void onActivityResult(int requestCode,int resultCode,Intent data)
{
super.onActivityResult(requestCode,resultCode,data);
if (requestCode == SELECT_IMAGE)
{
if (resultCode == Activity.RESULT_OK)
{
Uri selectedImage = data.getData();
Bitmap bitmap;
try
{
bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(),selectedImage);
}
catch (FileNotFoundException e)
{
Toast.makeText(TweetMyPic.this,\"Failed to load image: \" + e.toString(),Toast.LENGTH_LONG).show();
return;
}
catch (IOException e)
{
Toast.makeText(TweetMyPic.this,Toast.LENGTH_LONG).show();
return;
}
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG,100,baos);
sendImage(baos.toByteArray());
}
}
}
sendImage函数使用数据打开一个新活动。当我使用仿真器时,这工作得很好,但是当我使用我的设备(具有Cooliris而不是普通的gallery应用程序)时,它要么崩溃,要么只是在选择图像后恢复到先前的活动(仅在调试时发生)与日食)。
解决方法
当我通过意图发送位图数据时,Android不喜欢它。因此,我已更改为先保存图像,然后发送URI。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。