亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android應用中是如何讀取服務器中的圖片的

發布時間:2020-12-05 17:14:23 來源:億速云 閱讀:398 作者:Leah 欄目:移動開發

本篇文章為大家展示了Android應用中是如何讀取服務器中的圖片的,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

Android鏈接服務器獲取圖片在此提供三種方法

方法一:

public static Bitmap getImage(String path){ 
   
  try { 
    HttpURLConnection conn = (HttpURLConnection) new URL(path).openConnection(); 
    conn.setConnectTimeout(5000); 
    conn.setRequestMethod("GET"); 
    System.out.println("tdw1"); 
    if(conn.getResponseCode() == 200){ 
      InputStream inputStream = conn.getInputStream(); 
      Bitmap bitmap = BitmapFactory.decodeStream(inputStream);   
      return bitmap; 
    } 
  } catch (Exception e) { 
    e.printStackTrace(); 
  } 
  return null; 
} 

在第一種方法中,從conn的輸入流中獲取數據將其轉化為Bitmap型數據。

在功能代碼中:

image.setImageBitmap(getImage("路徑")); 

image為ImageView型控件。

第二種方法:

public static Bitmap getImage1(String path){ 
   
    HttpGet get = new HttpGet(path); 
    HttpClient client = new DefaultHttpClient(); 
    Bitmap pic = null; 
     try { 
      HttpResponse response = client.execute(get); 
      HttpEntity entity = response.getEntity(); 
      InputStream is = entity.getContent(); 
 
      pic = BitmapFactory.decodeStream(is);  // 關鍵是這句代 
  } catch (Exception e) { 
    e.printStackTrace(); 
  } 
  return pic; 
} 

這個方法類似上面那個方法。在功能代碼中設置是一樣的

第三種方法:

public static Uri getImage2(String path,File cacheDir){ 
    File localFile = new File(cacheDir,MD5.getMD5(path)+path.substring(path.lastIndexOf("."))); 
    if(localFile.exists()){ 
      return Uri.fromFile(localFile); 
    }else 
    { 
      HttpURLConnection conn; 
      try { 
        conn = (HttpURLConnection) new URL(path).openConnection(); 
        conn.setConnectTimeout(5000); 
        conn.setRequestMethod("GET"); 
        if(conn.getResponseCode() == 200){ 
          System.out.println("tdw"); 
          FileOutputStream outputStream = new FileOutputStream(localFile); 
          InputStream inputStream = conn.getInputStream(); 
          byte[] buffer = new byte[1024]; 
          int length = 0; 
          while((length=inputStream.read(buffer))!=-1){ 
            outputStream.write(buffer, 0, length); 
          } 
          inputStream.close(); 
          outputStream.close(); 
          return Uri.fromFile(localFile); 
        } 
      } catch (Exception e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
      } 
    } 
    return null;   
  } 

第三種方法,將從服務器獲取的數據存入本地的文件中,如果文件已存在,則不需要從服務器重新獲取數據。
在功能代碼中:

image.setImageURI(getImage2(path, cache)); 

上面代碼中設置圖片為緩存設置,這樣如果圖片資源更新了,則需要重新命名文件的名字,這樣才能夠重新加載新圖片。

cache = new File(Environment.getExternalStorageDirectory(),"cache"); 
if(!cache.exists()){ 
  cache.mkdirs(); 
} 

上述內容就是Android應用中是如何讀取服務器中的圖片的,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

金阳县| 汉沽区| 韶山市| 甘孜| 徐水县| 安庆市| 衡山县| 舞阳县| 荣昌县| 望江县| 读书| 固始县| 花莲市| 亳州市| 梁平县| 于田县| 乾安县| 安阳县| 甘洛县| 汽车| 张北县| 博野县| 磐石市| 大田县| 怀化市| 东兰县| 津市市| 平江县| 上虞市| 科尔| 凭祥市| 景德镇市| 漳平市| 武山县| 屏东县| 通许县| 锦州市| 永胜县| 静安区| 综艺| 高密市|