2009-07-21 20 views

Trả lời

5

bạn có thể sử dụng đoạn mã sau để tải một hình ảnh:

URLConnection connection = uri.toURL().openConnection(); 
connection.connect(); 
InputStream is = connection.getInputStream(); 
BufferedInputStream bis = new BufferedInputStream(is, 8 * 1024); 
Bitmap bmp = BitmapFactory.decodeStream(bis); 
bis.close(); 
is.close(); 

Yêu cầu quyền sau trong AndroidManifest.xml:

<uses-permission android:name="android.permission.INTERNET" /> 
+0

Và truyền kết nối tới HttpURLConnection nếu bạn muốn đặt tiêu đề và đọc mã trạng thái. – ThomasRS

5

Có một thư viện máy khách HTTP có thể được hỗ trợ trong Android ngay bây giờ, nhưng đối với bất kỳ kiểm soát hạt mịn nào bạn có thể sử dụng URL & HttpURLConnection. mã sẽ giống như thế này:

URL connectURL = new URL(<your URL goes here>); 
HttpURLConnection conn = (HttpURLConnection)connectURL.openConnection(); 

// do some setup 
conn.setDoInput(true); 
conn.setDoOutput(true); 
conn.setUseCaches(false); 
conn.setRequestMethod("GET"); 

// connect and flush the request out 
conn.connect(); 
conn.getOutputStream().flush(); 

// now fetch the results 
String response = getResponse(conn); 

nơi getResponse() trông giống như thế này, trong trường hợp của bạn, bạn đang nhận được một đống dữ liệu nhị phân sao bạn có thể muốn thay đổi StringBuffer để một mảng byte và chunk các lần đọc bởi một gia tăng lớn hơn.

Khi bạn đang nói về dữ liệu hình ảnh có thể lớn, những thứ khác bạn cần phải kiên quyết trong Android là đảm bảo bạn phát hành bộ nhớ càng sớm càng tốt, bạn chỉ có 16mb đống để chơi với cho tất cả các ứng dụng và nó chạy ra ngoài nhanh và GC sẽ thúc đẩy bạn hạt nếu bạn không thực sự tốt về trả lại tài nguyên bộ nhớ

+0

Liệu các giả lập khi chạy trên máy tính để bàn cho phép ứng dụng kết nối với Internet ?? Tôi nghĩ giả lập của tôi không cho phép thiết bị kết nối với internet. –

+1

có, ngăn xếp mạng sẽ được mô phỏng – jottos

11

Dont quên cung cấp cho các ứng dụng cho phép kết nối với Web,

trong AndroidManifest.xml:

<uses-permission android:name="android.permission.INTERNET" /> 
Các vấn đề liên quan