首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将BLOB图像转换为位图并在ImageView中显示

将BLOB图像转换为位图并在ImageView中显示
EN

Stack Overflow用户
提问于 2013-05-16 22:47:21
回答 2查看 5.4K关注 0票数 1

我已经四处寻找了很久,试图让它继续运行,但我无法获得显示的位图。我有一个用id调用的web服务,它返回一个我存储在字符串(img)中的BLOB图像。

代码语言:javascript
运行
复制
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http:site.com?GETBLOB&__blobRef=1&USER_ID=6379");
HttpResponse response = httpclient.execute(httpget);
BufferedReader in = new BufferedReader(new
                    InputStreamReader(response.getEntity().getContent()));
                    StringBuffer sb = new StringBuffer(""); 
                    String line = ""; 
                    String NL = System.getProperty("line.separator"); 

                    while ((line = in.readLine()) != null) 
                    { 
                        sb.append(line + NL); 
                    } 

                    in.close();
                    img = sb.toString(); 

当我将字符串img输出到文本视图时,它包含了一个看起来有效的结果,所以我非常确定上面的代码工作得很好。问题是将该字符串转换为位图。我已经尝试了很多方法,但从我所能找到的来看,这似乎是公认的最好的方法。

代码语言:javascript
运行
复制
byte[] decodedString = Base64.decode(img, Base64.DEFAULT);
bm = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
ImageView imgbox = (ImageView)findViewById(R.id.imagebox);
imgbox.setImageBitmap(bm);

这对我不起作用。对于我尝试过的大多数方法,它什么都不显示,但对于这个特定的方法,它会导致应用程序在加载时崩溃(即使我有一个try/catch)。

EN

Stack Overflow用户

回答已采纳

发布于 2013-05-16 23:50:37

看起来我把事情搞得太复杂了。这项工作非常完美,而且非常简单。

代码语言:javascript
运行
复制
URL imgurl = new URL("http:mysite?GETBLOB&__blobRef=1&USER_ID="+ID);
InputStream picin = imgurl.openStream();
Bitmap avatar = BitmapFactory.decodeStream(picin);
imgbox.setImageBitmap(avatar);
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16590615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档