將網路圖片 轉化成bitmap

weixin_34391445發表於2018-09-10

【1】解析圖片 在 子執行緒, 解析完成 使用Handler 通知到主執行緒。

 /**
 * 根據 圖片URL 轉換成 Bitmap
 * @param url
 * @return
 */
public static Bitmap returnBitMap(final String url, final android.os.Handler handler){

    new Thread(new Runnable() {
        @Override
        public void run() {
            URL imageurl = null;

            try {
                imageurl = new URL(url);
            } catch (MalformedURLException e) {
                e.printStackTrace();
            }
            try {
                HttpURLConnection conn = (HttpURLConnection)imageurl.openConnection();
                conn.setDoInput(true);
                conn.connect();
                InputStream is = conn.getInputStream();
                bitmap = BitmapFactory.decodeStream(is);

                Message message = handler.obtainMessage();
                message.obj = bitmap;
                message.arg1 = 1;
                handler.sendMessage(message);

                is.close();

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

    return bitmap;
}

【2】 使用

        ImageUtil.returnBitMap(picUrl, new Handler(Looper.getMainLooper()){

            @Override
            public void handleMessage(Message msg) {
                  super.handleMessage(msg);
                 
                // todo 具體邏輯
                Bitmap mBitmap = (Bitmap) msg.obj;
                int width = mBitmap.getWidth();
                int height = mBitmap.getHeight();
                final float picScale = (float) width/height;   // 寬高比

    
            }
        });

相關文章