1. 程式人生 > >android程式碼獲取網站圖示

android程式碼獲取網站圖示

網站上的圖示的獲取,如百度的圖示 Alt 百度ico 的獲取是在網站後面新增 /favicon.ico,如 http://www.baidu.com/favicon.ico
在android中獲取網路上的圖片並存儲到本地,或者置於ImageView元件中.以下為獲取URL上的圖示並設定到ImageView的工具方法:

public static void getBitmapFromURL(final String url, final ImageView imageView, final Handler handler){
        new Thread(new Runnable() {
            @Override
public void run() { try { URL httpURL = new URL(url); HttpURLConnection conn = (HttpURLConnection) httpURL.openConnection(); conn.setReadTimeout(5000); conn.setRequestMethod("GET"); conn.setDoInput(true
); InputStream in = conn.getInputStream(); // 獲取輸入流 FileOutputStream out = null; // 輸出流 File file = null; // 從URL下載的檔案 String fileName = url.replace("/", "").replace(":", "").replace("&", ""); // 用URL作為檔名,將其中的特殊字元去除
// 判斷 SD卡是否存在 if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { File dir= Environment.getExternalStorageDirectory(); // 獲取資料夾路徑 file = new File(dir, fileName); // 獲取到檔案 out = new FileOutputStream(file); // 將檔案寫到本地儲存 } byte[] b = new byte[1024]; // 設定緩衝區大小 int length; if(out != null) { while((length = in.read(b)) != -1) { out.write(b, 0, length); // 寫入本地儲存卡中 } } final Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath()); // 獲取檔案所在的位置 handler.post(new Runnable() { @Override public void run() { imageView.setImageBitmap(bitmap); } }); file.delete(); // 置於ImageView元件後,將SD卡上的圖示檔案刪除 in.close(); out.close(); } catch (IOException e) { e.printStackTrace(); } } }).start(); }