MainAcitivty.java

package com.xiaoming.getpicturefromnetwork;import java.io.IOException;import com.xiaoming.getpicturefromnetwork.service.ImageService;import android.os.Bundle;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.view.Menu;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import android.widget.Toast;public class MainActivity extends Activity {Button mbtn_getPicture = null;ImageView miv_image = null;EditText  met_path = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mbtn_getPicture = (Button) findViewById(R.id.getPicture);miv_image = (ImageView) findViewById(R.id.image);met_path  = (EditText) findViewById(R.id.path);mbtn_getPicture.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {new Thread(new Runnable () {Bitmap bitmap = null;public void run() {ImageService imageservice = new ImageService();String path = met_path.getText().toString();try{byte[] data = imageservice.getPicture(path);bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);miv_image.post(new Runnable() {@Overridepublic void run() {miv_image.setImageBitmap(bitmap);}});}catch (Exception e) {e.printStackTrace();Toast.makeText(MainActivity.this, "获取图片失败!", Toast.LENGTH_LONG).show();}}}).start();}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}




注意:


miv_image.post(new Runnable() {@Overridepublic void run() {miv_image.setImageBitmap(bitmap);}});

就是在这个部分很蛋疼啊, 如果直接写miv_image.setImageBitmap(bitmap); 就永远不能成功. 嗨, 多注意一点






ImageService.java

package com.xiaoming.getpicturefromnetwork.service;import java.io.BufferedInputStream;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.net.URLConnection;import org.apache.http.client.methods.HttpUriRequest;import com.xiaoming.getpicturefromnetwork.utils.StreamTool;import android.graphics.Bitmap;import android.graphics.BitmapFactory;public class ImageService  {public byte[] getPicture(String path) throws Exception{URL url = new URL(path);HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setRequestMethod("GET");conn.setConnectTimeout(5000);if( 200 == conn.getResponseCode() ){InputStream is = conn.getInputStream();return StreamTool.readStream(is);}return null;}}



StreamTool.java

package com.xiaoming.getpicturefromnetwork.utils;import java.io.ByteArrayOutputStream;import java.io.InputStream;import android.graphics.Bitmap;public class StreamTool {/** * 读取流中的数据 * @param in * @return * @throws Exception */public static byte[] readStream(InputStream in) throws Exception {ByteArrayOutputStream outStream = new ByteArrayOutputStream();byte[] buffer = new byte[1024];int len = 0;while( (len =in.read(buffer) ) != -1){outStream.write(buffer,0,len);}in.close();return outStream.toByteArray();}}





更多相关文章

  1. Android获取手机内存
  2. 获取android 手机的mac
  3. Android获取开机启动程序列表
  4. Android短信发送器
  5. Android(安卓)xml解析实例详解
  6. android访问网络图片
  7. android欢迎界面并执行任务
  8. Android(安卓)读写文件的N种写法
  9. Android下各文件方法获取的路径

随机推荐

  1. Android(安卓)处理OnItemClickListener时
  2. Android-Service组件之AIDL
  3. Android事件总线:EventBus
  4. android style中出现自定义属性时的写法
  5. android4.0.3,设置开机不自动进入锁屏状态
  6. Android自带语音播报+讯飞语音播报封装(
  7. Android(安卓)Shader着色器/渲染器
  8. android gridview布局添加多个title
  9. Android_Activity使用序列化传递对象
  10. android事件分发机制dispatch