2011-07-08 24 views
5

Im ứng dụng của tôi khi màn hình giật gân được bắt đầu Tôi chỉ cần nhấn một URL và lấy lại một tập tin XML. Từ tệp XML đó tôi đang phân tích dữ liệu như tên người dùng, id và URL để tải xuống một hình ảnh. Từ url đó tôi muốn tải xuống một hình ảnh và tôi muốn lưu trữ hình ảnh trong một tên cụ thể trong chính ứng dụng của mình. Tôi muốn sử dụng cùng một hình ảnh làm nền trong một hoạt động khác. Làm cách nào tôi có thể tải xuống và lưu trữ hình ảnh trong ứng dụng của mình. Nơi nó có thể được lưu trữ trong ứng dụng của tôi, hoặc trong thư mục thô hoặc trong drawable.Android - Cách tải xuống hình ảnh và sử dụng nó trong thời gian chạy?

Trước khi lưu trữ các tên như thế nào đến hình ảnh có thể được thiết lập như là một hình ảnh nền trong hoạt động cụ thể, xin vui lòng giúp tôi bạn bè

Trả lời

4

Đây là mã để tải hình ảnh của bạn từ một url:

InputStream in = new URL(image_url).openConnection().getInputStream(); 
Bitmap bm = BitmapFactory.decodeStream(in); 

lưu ý rằng nó nên được thực hiện không đồng bộ (như trong một AsyncTask)

hơn bạn có thể lưu trữ các Bitmap trên hệ thống sử dụng:

File fullCacheDir = new File(Environment.getExternalStorageDirectory(),cacheDir); 
String fileLocalName = name+".JPEG"; 
File fileUri = new File(fullCacheDir, fileLocalName); 
FileOutputStream outStream = null; 
outStream = new FileOutputStream(fileUri); 
image.compress(Bitmap.CompressFormat.JPEG, 75, outStream); 
outStream.flush(); 

Lưu ý rằng đây chỉ là ví dụ về cách lưu trữ hình ảnh của bạn và có các cách khác. Bạn nên xem xét tài liệu.

+1

Chỉ cần trẻ vị thành niên. Thực sự không cần phải gọi 'toString' trên' File'. Lớp 'File' có một hàm tạo trông giống như' File (File parent, String child) ' – Kaj

+0

cảm ơn, tôi sẽ cập nhật mã –

1

Nếu bạn muốn nó cho ứng dụng của bạn. Better tải hình ảnh tiết kiệm nó như dụ drawable và sử dụng nó trong ứng dụng của bạn mà bạn muốn

public static Drawable drawable = null; 

//get image from URL and store it in Drawable instance 

public void getImageFromURL(final String urlString) { 

    Thread thread = new Thread() { 
     @Override 
     public void run() { 
      //TODO : set imageView to a "pending" image 
      InputStream is = null; 
      try{ 
      URLConnection urlConn = new URL(urlString).openConnection(); 

      is= urlConn.getInputStream(); 
      }catch(Exception ex){} 
      drawable = Drawable.createFromStream(is, "src"); 


     } 
    }; 
    thread.start(); 
} 

hình ảnh bộ nền cho bất kỳ quan điểm

void setImage(View myView){ 
    myView.setBackgroundDrawable(drawable); 
} 
+0

nhưng bạn vẫn cần lưu nó ở đâu đó. làm thế nào để lưu trữ một drawable – Sunny

Các vấn đề liên quan