glide 子线程失效

今天在子线程中使用glide加载本地图片,失效!
分析:
glide显示图片应该放在主线程,耗时操作放在子线程!

 new Thread(){
            @Override
            public void run() {
                //需要在子线程中处理的逻辑
                try {
                    URL httpUrl = new URL("https://hailabtest.haierbiomedical.com/profile/"+userInfo.getAvatar());
                    HttpURLConnection conn = (HttpURLConnection) httpUrl.openConnection();
                    conn.setRequestMethod("GET");
                    conn.setConnectTimeout(5 * 1000);
                    InputStream inStream = conn.getInputStream();//通过输入流获取图片数据
                    byte[] btImg = readInputStream(inStream);//得到图片的二进制数据
                    saveFile("123",btImg);
                    Log.e("wy", "91saveFile: "+filepath );
                    String s =  filepath;
                    Bitmap bitmap = BitmapFactory.decodeFile(s);
//                    ivIcon.setImageBitmap(bitmap);
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            //加载图片
                    File file = new File(getExternalFilesDir(null), "123.jpg");
                    Glide.with(UserInfoActivity.this).load(file)
                            .apply(com.bumptech.glide.request.RequestOptions.circleCropTransform())
                            .into(ivIcon);
                        }
                    });
                    //加载图片
//                    File file = new File(getExternalFilesDir(null), "123.jpg");
//                    Glide.with(UserInfoActivity.this).load(file).into(ivIcon);

                }catch(Exception e){
                    e.printStackTrace();
                }
            }
        }.start();

用到的方法

 /**
     * 从输入流中获取数据
     * @param inStream 输入流
     * @return
     * @throws Exception
     */
    public static byte[] readInputStream(InputStream inStream) throws Exception{
        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
        byte[] buffer = new byte[1024];
        int len = 0;
        while( (len=inStream.read(buffer)) != -1 ){
            outStream.write(buffer, 0, len);
        }
        inStream.close();
        return outStream.toByteArray();
    }
    public void saveFile(String filename, byte[] data)throws Exception{
        if(data != null){
//            filepath = Environment.getDataDirectory().getPath()+"/" + filename+".jpg";
            filepath = getExternalFilesDir(null)+"/" + filename+".jpg";
//            Log.e("wy", "saveFile: "+filepath );
            File file  = new File(filepath);
            if(file.exists()){
                file.delete();
            }
            FileOutputStream fos = new FileOutputStream(file);
            fos.write(data,0,data.length);
            fos.flush();
            fos.close();
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值