标签:
效果图如下:

界面中有三个控件,一个EditText,一个Button,一个ImageView
1、下面是具体布局文件
<EditText android:id="@+id/picturepagh" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello_world" /><Button android:id="@+id/btn" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="查看" /><ImageButton android:id="@+id/imageView" android:layout_width="fill_parent" android:layout_height="200px" />public class MainActivity extends Activity {private Button btn;private EditText path;private ImageView imgview;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btn = (Button) findViewById(R.id.btn);path = (EditText) findViewById(R.id.picturepagh);imgview = (ImageView) findViewById(R.id.imageView);btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Log.i("CLICK", ((Button) v).getText().toString());new Thread(runa).start();}});}public void setView() {String picturepath = path.getText().toString();byte[] data = null;try {data = ImageService.getImage(picturepath);Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);// BitmapFactory:图片工厂!Looper.prepare();// 必须调用此方法,要不然会报错Message msg = new Message();msg.what = 0;msg.obj = bitmap;handler.sendMessage(msg);} catch (Exception e) {Toast.makeText(getApplicationContext(), "获取图片错误", 1).show();}}private Handler handler = new Handler() {@Overridepublic void handleMessage(Message msg) {if (msg.what == 0) {updateImageView((Bitmap) msg.obj);}}};private Runnable runa = new Runnable() {@Overridepublic void run() {setView();}};private void updateImageView(Bitmap bm) {imgview.setImageBitmap(bm);}}public class ImageService {// 获取网络图片的数据public static byte[] getImage(String picturepath) throws Exception {URL url = new URL(picturepath);HttpURLConnection conn = (HttpURLConnection) url.openConnection();// 基于http协议的连接对象conn.setConnectTimeout(10);// 10秒;conn.setRequestMethod("GET");// 大写if (conn.getResponseCode() == 200) {InputStream ins = conn.getInputStream();return StreamTool.read(ins);}return null;}}public class StreamTool {public static byte[] read(InputStream ins) throws Exception {ByteArrayOutputStream outstream = new ByteArrayOutputStream();byte[] buffer = new byte[1024];int length = 0;while ((length = ins.read(buffer)) > -1) {outstream.write(buffer, 0, length);}outstream.close();return outstream.toByteArray();}}标签:
原文地址:http://www.cnblogs.com/w411601/p/4620197.html