课程实验,实现网络图片的查看!

来源:互联网 发布:哪几个网站能查数据 编辑:程序博客网 时间:2024/05/22 17:26

可以看到网络图片的网址,利用安卓模拟器实现网络图片的查看!

下面是代码实现:

Activity_main。xml文件中代码的实现,注意使用LinearLayout中的垂直方式。

<ImageView    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:layout_weight="1000"    android:id="@+id/iv" /><EditText    android:singleLine="true"    android:id="@+id/et_path"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:hint="请输入图片路径"    /><Button    android:onClick="click"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:text="浏览"/>


MainActivity中的代码:

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.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.ProtocolException;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(android.os.Message msg) {            if (msg.what == CHANGE_UI) {                System.out.println("I get the picture!");                Bitmap bitmap = (Bitmap) msg.obj;                iv.setImageBitmap(bitmap);            } else if (msg.what == ERROR) {                Toast.makeText(MainActivity.this, "显示图片错误", Toast.LENGTH_LONG).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, "图片路径不能为空", Toast.LENGTH_LONG).show();        } else {            new Thread() {                private HttpURLConnection conn;                private Bitmap bitmap;                public void run() {                    try {                        URL url = new URL(path);                        conn = (HttpURLConnection) url.openConnection();                        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();                        System.out.println(code);                        if (code == 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 (MalformedURLException e) {                        e.printStackTrace();                        Message msg = new Message();                        msg.what = ERROR;                        handler.sendMessage(msg);                    } catch (ProtocolException e) {                        e.printStackTrace();                    } catch (IOException e) {                        e.printStackTrace();                    }                };            }.start();        }    }}
注意添加网络访问权限的代码,在AndroidManifest.xml文件下添加如下代码。否则无法访问网络图片:

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

0 0
原创粉丝点击