这篇文章主要为大家详细介绍了 Android 实现网页图片浏览功能,输入图片的 url 然后点击按钮加载出来图片,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Android 是一种基于 Linux 的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由 Google 公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用 "安卓" 或 "安致"。
基本功能:输入图片的 url 然后点击按钮加载出来图片
activity_main.xml
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:id="@+id/activity_main"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical"
- tools:context="cn.edu.bzu.imageview.MainActivity">
- <ImageView
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:id="@+id/iv"
- android:layout_weight="1000"
- />
- <EditText
- android:id="@+id/et_path"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:hint="请输入图片的路径"
- android:text="http://pic.58pic.com/58pic/16/62/63/97m58PICyWM_1024.jpg"
- android:singleLine="true" />
- <Button
- android:text="浏览"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:onClick="click"/>
- </LinearLayout>
MainActivity:
- package cn.edu.bzu.imageview;
- 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.text.TextUtils;
- import android.view.View;
- import android.widget.EditText;
- import android.widget.ImageView;
- import android.widget.Toast;
- import java.io.InputStream;
- import java.net.HttpURLConnection;
- import java.net.MalformedURLException;
- import java.net.URL;
- public class MainActivity extends Activity {
- protected static final int CHANGE_UI = 1;
- protected static final int ERROR = 2;
- private EditText et_path;
- private ImageView iv;
- private Handler handler = new Handler() {
- public void handleMessage(Message msg) {
- if (msg.what == CHANGE_UI) {
- Bitmap bitmap = (Bitmap) msg.obj;
- iv.setImageBitmap(bitmap);
- } else if (msg.what == ERROR) {
- Toast.makeText(MainActivity.this, "显示图片错误",Toast.LENGTH_SHORT).show();
- }
- }
- ;
- };
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- et_path = (EditText) findViewById(R.id.et_path);
- iv = (ImageView) findViewById(R.id.iv);
- }
- public void click(View view) {
- final String path = et_path.getText().toString().trim();
- if (TextUtils.isEmpty(path)) {
- Toast.makeText(this, "图片路径不能为空", Toast.LENGTH_SHORT).show();
- } else {
- //子线程请求网络,android4.0以后访问网络不能放在主线程中
- new Thread() {
- private HttpURLConnection conn;
- private Bitmap bitmap;
- public void run() {//连接服务器get请求,获取图片
- //创建URL对象
- try {
- URL url = new URL(path);
- conn = (HttpURLConnection) url.openConnection();//根据url发送http的请求
- conn.setRequestMethod("GET");//设置请求的方式
- conn.setConnectTimeout(5000);//设置超时时间
- conn.setRequestProperty("User-Agent", "Mozilla/4.0(compatible;MSIE 6.0;Windows NT 5.1;" + "SV1;.NET4.0C;.NET4.0E;.NET CLR 2.0.50727;" + ".NET CLR 3.0.4506.2152;.NET CLR 3.5.30729;Shuame)");//设置浏览器的版本
- int code = conn.getResponseCode();//得到服务器返回的响应码
- if (code == 200) {//请求成功后返回码是200
- InputStream is = conn.getInputStream();
- bitmap = BitmapFactory.decodeStream(is);
- Message msg = new Message();
- msg.what = CHANGE_UI;
- msg.obj = bitmap;
- handler.sendMessage(msg);
- } else {
- Message msg = new Message();
- msg.what = ERROR;
- handler.sendMessage(msg);
- }
- } catch (java.io.IOException e) {
- e.printStackTrace();
- Message msg = new Message();
- msg.what = ERROR;
- handler.sendMessage(msg);
- }
- }
- }.start();
- }
- }
这样基本功能就能实现了。
来源: http://www.phperz.com/article/17/0526/335574.html