网络图片查看器

来源:互联网 发布:小白软件库 编辑:程序博客网 时间:2024/06/05 22:38

这里写图片描述
MainActivity.java

package com.itheima.pictureviewer;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import android.support.v7.app.ActionBarActivity;import android.text.TextUtils;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.EditText;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends ActionBarActivity {protected static final int CHANGE_UI = 1;protected static final int Error = 2;private EditText et_path;private ImageView iv;//1.主线程创建消息处理器private Handler handler = new Handler(){    public void handleMessage(android.os.Message msg){        if(msg.what == CHANGE_UI){            Bitmap bitmap =(Bitmap)msg.obj;            iv.setImageBitmap(bitmap);        }else if(msg.what == Error){            Toast.makeText(MainActivity.this, "显示图片失败", 0).show();        }    };};    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, "图片路径不能为空", 0).show();    }else{        new Thread(){            public void run() {                //连接服务器get  请求获取图片                try {                    URL url = new URL(path);                    //根据url发送http的请求                    HttpURLConnection conn = (HttpURLConnection)url.openConnection();                    //设置请求方式                    conn.setRequestMethod("GET");                    conn.setConnectTimeout(5000);//5秒钟                    conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; MyIE2; .NET CLR 1.1.4322) ");                    //得到服务器返回的响应码                    int code = conn.getResponseCode();                    if(code == 200){                        InputStream is = conn.getInputStream();                        Bitmap bitmap = BitmapFactory.decodeStream(is);                        //iv.setImageBitmap(bitmap);                        //告诉主线程一个消息 帮我更改一下界面 内容:bitmap                        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 (Exception e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                    Message msg = new Message();                    msg.what = Error;                    handler.sendMessage(msg);                       }               };        }.start();    }   }}

res/layout/activity_main.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:orientation="vertical"    tools:context="com.itheima.pictureviewer.MainActivity" >    <ImageView        android:id="@+id/iv"        android:layout_weight="1000"          android:layout_width="match_parent"        android:layout_height="match_parent"        />    <EditText        android:singleLine="true"        android:text="http://e.hiphotos.baidu.com/album/w%3D230/sign=5405f4414d086e066aa8384832097b5a/f7246b600c3387440764470c500fd9f9d72aa019.jpg"        android:id="@+id/et_path"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:hint="请输入图片路径"        />    <Button        android:onClick="click"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="浏览"        /></LinearLayout>
原创粉丝点击