Android代码(Handler的运用),HttpURLConnection的应用,将url图片地址转换成图片。
1 布局文件,
| <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ??? xmlns:tools="http://schemas.android.com/tools" ??? android:layout_width="match_parent" ??? android:layout_height="match_parent" ??? android:orientation="vertical" ??? tools:context=".MainActivity" > ? ??? <ImageView ??????? android:id="@+id/iv_icon" ??????? android:layout_width="fill_parent" ??????? android:layout_height="0dip" ??????? android:layout_weight="1" /> ? ??? <LinearLayout ??????? android:layout_width="fill_parent" ??????? android:layout_height="wrap_content" ??????? android:orientation="horizontal" > ? ??????? <EditText ??????????? android:id="@+id/et_url" ??????????? android:layout_width="0dip" ??????????? android:text="http://img0.hao123.com/data/1_489a5f7dfbcbb624a231f372e4bdffce_310" ??????????? android:layout_height="wrap_content" ??????????? android:singleLine="true" ??????????? android:layout_weight="1" /> ? ??????? <Button ??????????? android:id="@+id/btn_submit" ??????????? android:layout_width="wrap_content" ??????????? android:layout_height="wrap_content" ??????????? android:text="Go" ??????? ????android:textSize="20sp" /> ??? </LinearLayout> ? </LinearLayout> |
Android代碼(Handler的運(yùn)用),HttpURLConnection的應(yīng)用,將url圖片地址轉(zhuǎn)換成圖片。
| package com.itheim28.submitdata; ? import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; ? import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.EditText; import android.widget.ImageView; import android.widget.Toast; ? public class MainActivity extends Activity implements OnClickListener { ? ??? private static final String TAG = "MainActivity"; ??? protected static final int ERROR = 1; ??? private EditText etUrl; ??? private ImageView ivIcon; ??? private final int SUCCESS = 0; ??? ??? private Handler handler = new Handler() { ?????? public void handleMessage(Message msg) { ?????????? super.handleMessage(msg); ?????????? ?????????? Log.i(TAG, "what = " + msg.what); ?????????? if (msg.what == SUCCESS) { ????????????? ivIcon.setImageBitmap((Bitmap)msg.obj); ?????????? } else if (msg.what == ERROR) { ????????????? Toast.makeText(MainActivity.this, "抓起失敗", 0).show(); ?????????? } ?????? } ??? }; ??? ??? @Override ??? protected void onCreate(Bundle savedInstanceState) { ?????? super.onCreate(savedInstanceState); ?????? setContentView(R.layout.activity_main); ?????? ?????? ivIcon = (ImageView) findViewById(R.id.iv_icon); ?????? etUrl = (EditText) findViewById(R.id.et_url); ?????? ?????? findViewById(R.id.btn_submit).setOnClickListener(this); ??? } ? ??? @Override ??? public void onClick(View v) { ?????? final String url = etUrl.getText().toString(); ?????? ?????? new Thread(new Runnable() { ? ?????????? @Override ?????????? public void run() { ????????????? Bitmap bitmap = getImageFromNet(url); ? //??????????? ivIcon.setImageBitmap(bitmap);???? // 設(shè)置imageView顯示的圖片 ????????????? if(bitmap != null) { ????????????????? Message msg = new Message(); ????????????????? msg.what = SUCCESS; ????????????????? msg.obj = bitmap; ????????????????? handler.sendMessage(msg); ????????????? } else { ????????????????? Message msg = new Message(); ????????????????? msg.what = ERROR; ????????????????? handler.sendMessage(msg); ????????????? } ?????????? }}).start(); ?????? ??? } ??? ??? /** ??? ?* 根據(jù)url連接取網(wǎng)絡(luò)抓去圖片返回 ??? ?* @param url ??? ?* @return url對應(yīng)的圖片 ??? ?*/ ??? private Bitmap getImageFromNet(String url) { ?????? HttpURLConnection conn = null; ?????? try { ?????????? URL mURL = new URL(url); // 創(chuàng)建一個url對象 ?????????? ?????????? // 得到http的連接對象 ?????????? conn = (HttpURLConnection) mURL.openConnection(); ?????????? ?????????? conn.setRequestMethod("GET");????? // 設(shè)置請求方法為Get ?????????? conn.setConnectTimeout(10000);???? // 設(shè)置連接服務(wù)器的超時時間, 如果超過10秒鐘, 沒有連接成功, 會拋異常 ?????????? conn.setReadTimeout(5000);????? // 設(shè)置讀取數(shù)據(jù)時超時時間, 如果超過5秒, 拋異常 ?????????? ?????????? conn.connect();????? // 開始鏈接 ?????????? ?????????? int responseCode = conn.getResponseCode(); // 得到服務(wù)器的響應(yīng)碼 ?????????? if(responseCode == 200) { ????????????? // 訪問成功 ????????????? InputStream is = conn.getInputStream();?? // 獲得服務(wù)器返回的流數(shù)據(jù) ????????????? ????????????? Bitmap bitmap = BitmapFactory.decodeStream(is); // 根據(jù) 流數(shù)據(jù) 創(chuàng)建一個bitmap位圖對象 ????????????? ????????????? return bitmap; ?????????? } else { ????????????? Log.i(TAG, "訪問失敗: responseCode = " + responseCode); ?????????? } ?????? } catch (Exception e) { ?????????? e.printStackTrace(); ?????? } finally { ?????????? if(conn != null) { ????????????? conn.disconnect();?????? // 斷開連接 ?????????? } ?????? } ?????? return null; ??? } } |
?
總結(jié)
以上是生活随笔為你收集整理的Android代码(Handler的运用),HttpURLConnection的应用,将url图片地址转换成图片。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: A43_太子步兵坦克
- 下一篇: 半成品包子怎么做