android界面特效-----网络图片搜索

本文介绍如何利用百度图片搜索接口获取图片,详细解析了从接口返回的JSON数据中提取可用图片链接的方法,并提供了代码示例。同时,提醒开发者在处理网络图片时要注意避免OOM异常。

112549_Lu8s_863548.png

效果如上图

本应用源码已公开,发布在OSC@git上面

今天主要讲解如何通过百度图片搜索去获取图片。

        看到有很多人做音乐播放器,都不知道怎么在线搜索音乐的专辑图片,这里我提供一种网络搜索的方法:

        首先,你需要知道的是百度图片搜索的接口   http://image.baidu.com/i?tn=baiduimagejson&ie=utf-8&ic=0&rn=20&pn=1&word=XXX  谷歌也有同样的接口,但好像在国内连通率不是很高,具体接口地址大家自行搜索。

        打开接口以后,我们可以看到有非常多的图片链接

205127_PWrf_863548.png

不过很多都是没有用(与其说是没有用,不如说是不知道怎么用,反正不是正常能访问的),我们所能用的仅仅是objURL所对应的值,这个链接才是可以使用的。

这里,顺便说一句,在解析这个json数据的时候,没有必要全部解析出来,因为我们所需要的就只有objURL而已,这里写一个我的解析方法:

//参数i表示需要第几张图片
public static String ParserMusicImg(Context context,String xml, int i) {
        String imgUrl = xml;
        for (int count = 0; count <= i; count++) {
            int begin = 0, end = 0;
            begin = xml.indexOf("\"objURL\":\"") + 10;
            end = xml.indexOf("\"", begin);
            if (begin < 0 || end < 0) {
                ErrHandleUtils.sendErrInfo(context, "没有更多图片了");
                break;
            } else {
                imgUrl = xml.substring(begin, end);
            }
            xml = xml.substring(end);
        }
        return imgUrl;
    }

接下来,拿到了图片的地址,我们只需要调用一个http请求去获取到这张图片,并显示出来就行了。

顺便提一句:在显示的时候一定小心oom异常,因为网络图片直接获取,谁也不知道是一张多大的图片,万一几张几兆的图片直接加到内存,喔,OutOfMemory。。。。。



转载于:https://my.oschina.net/kymjs/blog/213963

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值