安卓开发 图片上传 通过拍照可以实现但是通过相册却失败 20

addImageView=(ImageView)this.findViewById(R.id.addImageView);addImageView.setOnClickL... addImageView = (ImageView) this.findViewById(R.id.addImageView);
addImageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialogView = getLayoutInflater().inflate(R.layout.my_dialog,
null, false);
dialog = new Dialog(ReleaseActivity.this, R.style.myDialogTheme);
dialog.setContentView(dialogView);
dialog.show();
// 从相册选择图片
gallery = (TextView) dialogView.findViewById(R.id.gallery);
gallery.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (photo_list.size() == 3) {
Toast.makeText(ReleaseActivity.this,
"对不起,内存限制不能再添加图片了~~", Toast.LENGTH_LONG)
.show();
} else {
Intent intent = new Intent(
Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
intent.putExtra("return-data", true);
startActivityForResult(intent, 2);
}
dialog.dismiss();
}
});
// 拍照
camera = (TextView) dialogView.findViewById(R.id.camera);
camera.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (photo_list.size() == 3) {
Toast.makeText(ReleaseActivity.this,
"对不起,内存限制只能添加少于等于三张图片", Toast.LENGTH_LONG)
.show();
} else {
Intent intent = new Intent(
MediaStore.ACTION_IMAGE_CAPTURE);

startActivityForResult(intent, 1);
}
dialog.dismiss();
错误是
04-11 03:52:59.080: E/BitmapFactory(2407): Unable to decode stream: java.lang.NullPointerException
展开
 我来答
qi12371
2015-04-11 · 电商从业者,码农出生
qi12371
采纳数:559 获赞数:1052

向TA提问 私信TA
展开全部
你的onActivityResult方法呢?
追问


onActivityResult的图片发出来了 不知道能不能看清楚 请问是什么地方出了错吗

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
QQ604391217
2015-04-12
知道答主
回答量:9
采纳率:0%
帮助的人:5.1万
展开全部
你的代码onActivityResult里都没有加保护,我这周也在写这个功能,上班后给你
追问
好的 谢谢
追答
其实原因很简单,就是你的图片过大,这时使用return data时,android为防止内存oom,实际并没有return成功,所以,当你的代码使用时,认为已经传递过来,但没有做空判断就直接使用,当然会挂掉。对于大图,应当使用uri的方式,下面这个链接你看看,有问题再找我:http://www.linuxidc.com/Linux/2012-11/73940.htm,网上的其他demo都是针对处理小图的,处理大图都会挂掉,这篇文章详细解释了处理小图和大图的区别

再补充下,截图是区分截取大图用uri,截取小图用return data,另外截取大图还区分平台,因为4.4以上的系统,uri里没有path的,所以上面链接的代码应该在4.4以上的平台不能使用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式