安卓网络编程-通过GET方式获取网络图片
2016-06-29 22:41
465 查看
通过使用java.net.HttpURLConnection包,来获取网络图片并显示在ImageView中,知识点包括子线程的创建,线程之间的传值,handle消息队列。
Xml布局文件:
package com.jxhs.cx; 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.view.View; import android.widget.ImageView; import android.widget.Toast; public class MainActivity extends Activity { static ImageView ivImageView; static MainActivity mainActivity; static Handler handler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case 1: ivImageView.setImageBitmap((Bitmap) msg.obj); break; case 0: Toast.makeText(mainActivity, "获取失败", Toast.LENGTH_SHORT).show(); break; } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ivImageView = (ImageView) findViewById(R.id.iv); mainActivity = this; } public void showiv(View view) { Thread thread = new Thread() { @Override public void run() { String urlString = "http://wanluqi.cn/wp-content/uploads/2016/05/79051463989665.jpg"; try { URL url = new URL(urlString); HttpURLConnection conn = (HttpURLConnection) url .openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(5000); conn.setReadTimeout(5000); conn.connect(); if (conn.getResponseCode() == 200) { InputStream is = conn.getInputStream(); Bitmap bm = BitmapFactory.decodeStream(is); Message msg = new Message(); msg.obj = bm; msg.what = 1; handler.sendMessage(msg); } else { Message msg = handler.obtainMessage(); msg.what = 0; handler.sendMessage(msg); } } catch (Exception e) { e.printStackTrace(); } } }; thread.start(); } }
Xml布局文件:
<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:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.cx.MainActivity" android:orientation="vertical" > <Button android:layout_gravity="center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="获取图片" android:onClick="showiv" /> <ImageView android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/iv"/> </LinearLayout>
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树