這篇文章主要為大家詳細介紹了如何在Android中將網絡Url資源轉換為Drawable資源,文中示例代碼介紹的非常詳細,具有一定的參考價值,發現的小伙伴們可以參考一下:
Android是一種基于Linux內核的自由及開放源代碼的操作系統,主要使用于移動設備,如智能手機和平板電腦,由美國Google公司和開放手機聯盟領導及開發。
Url轉換為Drawable
private Drawable loadImageFromNetwork(String imageUrl) {
Drawable drawable = null;
try {
drawable = Drawable.createFromStream(
new URL(imageUrl).openStream(), "image.jpg");
} catch (IOException e) {
Log.d("test", e.getMessage());
}
if (drawable == null) {
Log.d("test", "null drawable");
} else {
Log.d("test", "not null drawable");
}
return drawable;
}這部分就是我們將網絡Url資源轉換為Drawable資源了。
然后我們根據我們的源碼來分析一波:
首相我們創建了一個Drawable
然后我們通過我們的Url資源生成一個Drawable資源。
這樣我們的Url網絡資源,轉換為Drawable就完成。
補充知識:URL轉Drawable之 Android中獲取網絡圖片的三種方法
android中獲取網絡圖片是一件耗時的操作,如果直接獲取有可能會出現應用程序無響應(ANR:Application Not Responding)對話框的情況。對于這種情況,一般的方法就是耗時操作用線程來實現。下面列三種獲取url圖片的方法:
1.直接獲?。海ㄈ菀祝篈NR,不建議)
mImageView = (ImageView)this.findViewById(R.id.imageThreadConcept) ; Drawable drawable = loadImageFromNetwork(IMAGE_URL); mImageView.setImageDrawable(drawable) ;
公用方法:
private Drawable loadImageFromNetwork(String imageUrl)
{
Drawable drawable = null;
try {
// 可以在這里通過文件名來判斷,是否本地有此圖片
drawable = Drawable.createFromStream(
new URL(imageUrl).openStream(), "image.jpg");
} catch (IOException e) {
Log.d("test", e.getMessage());
}
if (drawable == null) {
Log.d("test", "null drawable");
} else {
Log.d("test", "not null drawable");
}
return drawable ;
}2. 后臺線程獲取url圖片:
mImageView = (ImageView)this.findViewById(R.id.imageThreadConcept) ;
new Thread(new Runnable(){
Drawable drawable = loadImageFromNetwork(IMAGE_URL);
@Override
public void run() {
// post() 特別關鍵,就是到UI主線程去更新圖片
mImageView.post(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
mImageView.setImageDrawable(drawable) ;
}}) ;
}
}).start() ;3.AsyncTask獲取url圖片
mImageView = (ImageView)this.findViewById(R.id.imageThreadConcept) ;
new DownloadImageTask().execute(IMAGE_URL) ;
private class DownloadImageTask extends AsyncTask<String, Void, Drawable>
{
protected Drawable doInBackground(String... urls) {
return loadImageFromNetwork(urls[0]);
}
protected void onPostExecute(Drawable result) {
mImageView.setImageDrawable(result);
}
}以上就是億速云小編為大家收集整理的如何在Android中將網絡Url資源轉換為Drawable資源,如何覺得億速云網站的內容還不錯,歡迎將億速云網站推薦給身邊好友。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。