編輯:關於Android編程
URL url = new URL(address);
//獲取連接對象,並沒有建立連接
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//設置連接和讀取超時
conn.setConnectTimeout(5000);
conn.setReadTimeout(5000);
//設置請求方法,注意必須大寫
conn.setRequestMethod(GET);
//建立連接,發送get請求
//conn.connect();
//建立連接,然後獲取響應嗎,200說明請求成功
conn.getResponseCode();
服務器的圖片是以流的形式返回給浏覽器的
//拿到服務器返回的輸入流
InputStream is = conn.getInputStream();
//把流裡的數據讀取出來,並構造成圖片
Bitmap bm = BitmapFactory.decodeStream(is);
把圖片設置為ImageView的顯示內容
ImageView iv = (ImageView) findViewById(R.id.iv);
iv.setImageBitmap(bm);
添加權限
//消息隊列
Handler handler = new Handler(){
//主線程中有一個消息輪詢器looper,不斷檢測消息隊列中是否有新消息,如果發現有新消息,
//自動調用此方法,注意此方法是在主線程中運行的
public void handleMessage(android.os.Message msg) {
}
};
在子線程中往消息隊列裡發消息
//創建消息對象
Message msg = new Message();
//消息的obj屬性可以賦值任何對象,通過這個屬性可以攜帶數據
msg.obj = bm;
//what屬性相當於一個標簽,用於區分出不同的消息,從而運行不能的代碼
msg.what = 1;
//發送消息
handler.sendMessage(msg);
通過switch語句區分不同的消息
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
//如果是1,說明屬於請求成功的消息
case 1:
ImageView iv = (ImageView) findViewById(R.id.iv);
Bitmap bm = (Bitmap) msg.obj;
iv.setImageBitmap(bm);
break;
case 2:
Toast.makeText(MainActivity.this, 請求失敗, 0).show();
break;
}
}
//1.拿到服務器返回的輸入流
InputStream is = conn.getInputStream();
//2.把流裡的數據讀取出來,並構造成圖片
FileOutputStream fos = new FileOutputStream(file);
byte[] b = new byte[1024];
int len = 0;
while((len = is.read(b)) != -1){
fos.write(b, 0, len);
}
創建bitmap對象的代碼改成
Bitmap bm = BitmapFactory.decodeFile(file.getAbsolutePath());
每次發送請求前檢測一下在緩存中是否存在同名圖片,如果存在,則讀取緩存
SmartImageView的使用
SmartImageView siv = (SmartImageView) findViewById(R.id.siv);
siv.setImageUrl(http://192.168.1.102:8080/dd.jpg);
Android中Service的一個Demo例子Service組件是Android系統重要的一部分,網上看了代碼,很簡單,但要想熟練使用還是需要Coding。本文,主要貼
關於Context我們首先應該知道:(1)它描述的是一個應用程序環境的信息,即上下文。(2)該類是一個抽象(abstract class)類,Android提供了該抽象類
IntentService簡介:IntentService是一個通過Context.startService(Intent)啟動可以處理異步請求的Service,使用時你
目前世界有幾十億安卓手機在使用,而大量Android 5.0用戶稱自己設備的耗電速度過快。原版Lollipop當中的確存在Wi-Fi引發的耗電問題,但谷歌已