异步下载图像并设置为imageview

时间:2013-11-03 23:39:02

标签: android

好吧,我对Android开发很新,我正在开发一个应用程序。我已经遍布stackoverflow,但似乎找不到一个有效的例子。我需要异步下载网址中的照片,然后将其设置为imageview。我决定创建一个与我的片段分开的类来下载图像。

代码:

public class UpdateUser {

    private static final String TAG = "UpdateUser";


    public void refresh(JSONObject user){

        //Download profile pic
        try {
            downloadProfpic(user.getString("userpic_url"));
        }  catch (JSONException e) {
            Log.e(TAG, "", e);
        }
    }

    public void downloadProfpic(String userpicURL) {

        try{

            URL murl = new URL(userpicURL);
            Bitmap bm = BitmapFactory.decodeStream(murl.openConnection().getInputStream());

            Context context = Application.getContext();
            final FileOutputStream fos = context.openFileOutput("Prof_pic.png", Context.MODE_PRIVATE);

            bm.compress(CompressFormat.JPEG, 90, fos);

            //Set the imageview
            //pageFrag.setProfPic("Prof_pic.png");

        } catch (IOException e) {
            e.printStackTrace();
            return;
        }    

    }
}

正如您所看到的那样,它不是异步的,也没有设置imageview。我也很确定我做得不对。我应该下载到内部存储吗?或者下载到文件?有人可以帮助我。

谢谢你, 汤姆

1 个答案:

答案 0 :(得分:3)

使用Picasso

或者,使用Ion

或者,使用SmartImageView

或者,使用任何其他现有的Android库来下载和处理图像。