HttpUrlConnection網路請求,圖片+文字
阿新 • • 發佈:2019-01-22
package com.wzq.urlcondemo;
import android.annotation.SuppressLint;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.wzq.urlcondemo.utils.NetUtil;
/**
* 主執行緒 ---UI執行緒,不可以阻塞, 如果阻塞會報ANR(application not response)
* 子執行緒---, 耗時操作,聯網就是耗時操作;
*
* 1--控制元件
* 2--點選事件
* 3---請求網路
* 4 藉助handler更新UI;
*/
public class MainActivity extends AppCompatActivity {
public String urlString = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
String urlBitmap = "http://img.my.csdn.net/uploads/201407/26/1406383265_8550.jpg";
String tag = "wzq";
private ImageView iv;
private TextView tv;
//定義一個handler,用來更新UI;
@SuppressLint("HandlerLeak")
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
int what = msg.what;
if (what == 0) { //傳送的文字
tv.setText((String)msg.obj);
}else if(what == 1){ //傳送的是圖片;
iv.setImageBitmap((Bitmap) msg.obj);
}
}
};
/**
* alt+enter 自動補全
* fbc --再tabfindViewByIde的快捷鍵;
* ctrl+alt +F 宣告全域性變數
* ctrl+alt +L 格式化程式碼
* ctro+p 引數提示
* f2 --定位程式碼錯誤位置
*
* @param savedInstanceState
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.tv);
iv = (ImageView) findViewById(R.id.iv);
setOnClickListener();
}
//設定監聽
private void setOnClickListener() {
//文字的點選事件
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new Thread(){
@Override
public void run() {
super.run();
//得到從伺服器請求的json資料;
String json = NetUtil.getNetJson(urlString);
Message message = new Message();
message.what = 0;//代表傳送的是文字;
message.obj = json;
handler.sendMessage(message);
}
}.start();
}
});
//圖片的點選事件
iv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new Thread(new Runnable() {
@Override
public void run() {
Bitmap netBitmap = NetUtil.getNetBitmap(urlBitmap);
//獲取message
Message message = Message.obtain();
message.what =1;//代表是傳送圖片的標記位;
message.obj = netBitmap;
handler.sendMessage(message);
}
}).start();
}
});
}
}
import android.annotation.SuppressLint;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.wzq.urlcondemo.utils.NetUtil;
/**
* 主執行緒 ---UI執行緒,不可以阻塞, 如果阻塞會報ANR(application not response)
* 子執行緒---, 耗時操作,聯網就是耗時操作;
*
* 1--控制元件
* 2--點選事件
* 3---請求網路
* 4 藉助handler更新UI;
*/
public class MainActivity extends AppCompatActivity {
public String urlString = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
String urlBitmap = "http://img.my.csdn.net/uploads/201407/26/1406383265_8550.jpg";
String tag = "wzq";
private ImageView iv;
private TextView tv;
//定義一個handler,用來更新UI;
@SuppressLint("HandlerLeak")
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
int what = msg.what;
if (what == 0) { //傳送的文字
tv.setText((String)msg.obj);
}else if(what == 1){ //傳送的是圖片;
iv.setImageBitmap((Bitmap) msg.obj);
}
}
};
/**
* alt+enter 自動補全
* fbc --再tabfindViewByIde的快捷鍵;
* ctrl+alt +F 宣告全域性變數
* ctrl+alt +L 格式化程式碼
* ctro+p 引數提示
* f2 --定位程式碼錯誤位置
*
* @param savedInstanceState
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.tv);
iv = (ImageView) findViewById(R.id.iv);
setOnClickListener();
}
//設定監聽
private void setOnClickListener() {
//文字的點選事件
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new Thread(){
@Override
public void run() {
super.run();
//得到從伺服器請求的json資料;
String json = NetUtil.getNetJson(urlString);
Message message = new Message();
message.what = 0;//代表傳送的是文字;
message.obj = json;
handler.sendMessage(message);
}
}.start();
}
});
//圖片的點選事件
iv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new Thread(new Runnable() {
@Override
public void run() {
Bitmap netBitmap = NetUtil.getNetBitmap(urlBitmap);
//獲取message
Message message = Message.obtain();
message.what =1;//代表是傳送圖片的標記位;
message.obj = netBitmap;
handler.sendMessage(message);
}
}).start();
}
});
}
}