2 slaks SLaks 于 2013.05.13 15:54 提问

从远程服务器获取图像问题

从远程服务器获取图像是一个好的简单的方法吗?

当我试着在 android AVD 实现这项功能时,在屏幕上和 log_cat上什么也没显示,没有错误也没有崩溃。如何解决这个问题呢?

public class MainActivity extends Activity {
Bitmap bitmap = null;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    try{
        bitmap = getBitmap("https://twimg0-a.akamaihd.net/profile_images/2275552571/image_normal.jpg");
        ImageView img = (ImageView) findViewById(R.id.img);
        img.setImageBitmap(bitmap);
    }catch(Exception e){
    }
}
public Bitmap getBitmap(String bitmapUrl) { 
              try {
                URL url = new URL(bitmapUrl);
                return BitmapFactory.decodeStream(url.openConnection().getInputStream());
              }catch(Exception ex) {return null;}
            }
 }

3个回答

hxn_217
hxn_217   2013.05.14 15:37
已采纳

你可以同步的,或者异步的下载远程图像:

ImageDownloader imageDownloader = new ImageDownloader();
    imageDownloader.setMode(ImageDownloader.Mode.CORRECT);
    ImageView imageView = (ImageView) rowView.findViewById(R.id.picture);

    imageView.setLayoutParams(new GridView.LayoutParams(140, 140));
    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
    imageView.setPadding(4, 4, 4, 4);

    List<ImageSize> images = this.pictures.get(position).getImages();

    imageDownloader.download(images.get(images.size()-3).getSource(), imageView);

请参考:http://code.google.com/p/android-imagedownloader/

luhuajcdd
luhuajcdd   2013.05.14 12:56
private Drawable LoadImageFromWebOperations(String url) {
try {
    InputStream is = (InputStream) new URL(url).getContent();
    Drawable d = Drawable.createFromStream(is, "image.png");
    return d;
    }
catch (Exception e) 
{
    System.out.println("Exc=" + e);
    return null;
}
}
franzhong
franzhong   2013.05.14 13:10

这样再试试呢

public class MainActivity extends Activity {
    URL url=null;
    String hsUrl = "https://twimg0-a.akamaihd.net/profile_images/2275552571/image_normal.jpg";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ImageView bm = (ImageView) findViewById(R.id.mIV);
        try {
            url = new URL(hsUrl);
            HttpsURLConnection con = (HttpsURLConnection) url.openConnection();
            X509TrustManager xtm = new X509TrustManager() {
                    @Override
                    public X509Certificate[] getAcceptedIssuers() {
                            // TODO Auto-generated method stub
                            return null;
                    }
                    @Override
                    public void checkServerTrusted(X509Certificate[] arg0,
                                    String arg1) throws CertificateException {
                            // TODO Auto-generated method stub
                    }
                    @Override
                    public void checkClientTrusted(X509Certificate[] arg0,
                                    String arg1) throws CertificateException {
                            // TODO Auto-generated method stub
                    }
            };
            TrustManager[] tm = { xtm };
            SSLContext ctx = SSLContext.getInstance("TLS");
            ctx.init(null, tm, null);
            con.setSSLSocketFactory(ctx.getSocketFactory());
            con.setHostnameVerifier(new HostnameVerifier() {
                    @Override
                    public boolean verify(String arg0, SSLSession arg1) {
                            return true;
                    }
            });
            InputStream ss = con.getInputStream();
            Bitmap bm1 = BitmapFactory.decodeStream(ss);
            bm.setImageBitmap(bm1);
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    }

}

manifest权限

<uses-permission android:name="android.permission.INTERNET"></uses-permission> 

没看到,一楼的方法也可以,以上是https访问方式

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
AVI视频流中获取单帧
从视频流中获取单帧图像的数据从视频流中获取单帧图像的数据从视频流中获取单帧图像的数据从视频流中获取单帧图像的数据从视频流中获取单帧图像的数据从视频流中获取单帧图像的数据从视频流中获取单帧图像的数据从视频流中获取单帧图像的数据
python 从远程服务器中获取文件到本地
通过paramiko库来实现,基本代码如下 host_ip='***' #不需要带端口 username='***'  password='***' remote_path='***' local_path='***' def remote_scp(host_ip,remote_path,local_path,username,password):   t = par
python 从远程服务器下载日志文件
该程序可实现抓取服务器的日志文件到本地,根据该程序可自行扩展对日志文件的自动化分析。 常用于数据挖掘、生产维护等 python 从远程服务器下载日志文件的代码: #!/usr/bin/python import os import sys import ftplib import socket ############################################
delphi 从扫描仪获取图像
从扫描仪获取图像,,里面有DEMO 从扫描仪获取图像,,里面有DEMO 从扫描仪获取图像,,里面有DEMO
git 从远程服务器更新本地项目
从远程服务器上更新别人上传的文件 1.使用git fetch更新,相当于是从远程获取最新版本到本地,不会自动merge git fetch origin master git log -p master..origin/master git merge origin/master首先从远程的origin的master主分支下载最新的版本到origin/master分支上 然后比较本地的mas
WMI获取远程服务器CPU,内存使用率函数源代码
WMI获取远程服务器CPU,内存使用率函数源代码,主要解决Win32_LogicalMemoryConfiguration不能用的问题
怎样从远程服务器上拿文件下来
首先用putty 链接 linux 服务器, 拿到服务器 ip:
git clone后,如何从远程获取某一个远程服务器上的另外一个分支
git clone后,如何从远程获取某一个远程服务器上的另外一个分支? 当前本地分支是develop分支,没有master分支,现在希望在当前的文件路径下。 获取远程的master分支。使用命令git branch master origin/master 例子如下: frank.liu@BCCDESKTOP0444 MINGW64 /d/git/frank-liu-1/container
Linux脚本连接远程服务器下载文件
最近为了提高工作效率,想着把平时需要定期进行的代码替换工作进行自动化。于是写了一个shell脚本。整个脚本的思路很简单,就是把另一个环境上的最新编译好的代码文件夹打包放到本地目录,将新代码文件夹里面的配置文件替换成原本地配置文件。代码如下:!/bin/ksh Local_dir=$HOME/chouke_test #本地存放UMC文件夹目录 Remote_dir=/orasvr_tmp...
获取远程服务器的文件输入流(在已知文件存放位置的情况下)
注意橙色部分,要写客户端程序橙色部分大体不变,存储部分就要根据情况改动,不改肯定达不到效果。 import java.net.URL;import java.net.HttpURLConnection;import java.io.*;import java.lang.*;import java.util.*;  //文件名; String filename = "