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

android界面特效-----网络图片搜索_第1张图片

效果如上图

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

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

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

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

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

android界面特效-----网络图片搜索_第2张图片

不过很多都是没有用(与其说是没有用,不如说是不知道怎么用,反正不是正常能访问的),我们所能用的仅仅是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。。。。。



你可能感兴趣的:(android界面特效-----网络图片搜索)