网络图片查看器

来源:互联网 发布:mysql innerjoin 编辑:程序博客网 时间:2024/05/17 07:59

一、运行效果图

二、核心代码

图片地址:http://4493bz.1985t.com/uploads/allimg/150127/4-15012G52133.jpg

 

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"      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=".MainActivity" >     <ImageView          android:id="@+id/image"          android:layout_width="match_parent"          android:layout_height="wrap_content"          android:layout_gravity="center"          android:layout_weight="1"         />      <EditText        android:id="@+id/editText1"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:hint="请输入图片的路径:"         android:text="http://4493bz.1985t.com/uploads/allimg/150127/4-15012G52133.jpg"        >        <requestFocus />    </EditText>    <Button          android:id="@+id/button1"          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:layout_gravity="center"          android:onClick="viewImage"          android:text="浏览" />              </LinearLayout>


MainActivity.java

package com.example.imagebrowser;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import android.R.string;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.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import android.widget.Toast;public class MainActivity extends Activity{public static final int SHOW_IMAGE=1; private ImageView image;private EditText editText1;private Button button1;private Handler handler=new Handler(){public void handleMessage(android.os.Message msg){switch(msg.what){case SHOW_IMAGE:Bitmap bitmap=(Bitmap) msg.obj;image.setImageBitmap(bitmap);break;default:break;}}};protected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);image=(ImageView) findViewById(R.id.image);editText1=(EditText) findViewById(R.id.editText1);button1=(Button) findViewById(R.id.button1);button1.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){if(v.getId()==R.id.button1){showimage(v);}}});}public void showimage(View view){final String path=editText1.getText().toString();if(TextUtils.isEmpty(path)){              Toast.makeText(this, "图片路径不能为空", Toast.LENGTH_LONG).show();          }else{          new Thread(){                  public void run() {                      try {                          URL url=new URL(path);                          HttpURLConnection httpURLConnection=(HttpURLConnection) url.openConnection();                        httpURLConnection.setRequestMethod("GET");                          httpURLConnection.setConnectTimeout(5000);                          int responseCode=httpURLConnection.getResponseCode();                          if(responseCode==200){                         InputStream inputStream=httpURLConnection.getInputStream();                              Bitmap bitmap=BitmapFactory.decodeStream(inputStream);                              Message message=new Message();                              message.what=SHOW_IMAGE;                              message.obj=bitmap;                             handler.sendMessage(message);                          }else{                        Toast.makeText(MainActivity.this, "显示图片失败", Toast.LENGTH_SHORT).show();                        }                    }catch (MalformedURLException e) {                          e.printStackTrace();                      } catch (IOException e) {                          e.printStackTrace();                      }                  };        }.start();        }}public boolean onCreateOptionsMenu(Menu menu){// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}


三、运行过程中出现的问题

忘了声明访问网络权限,对Handler的用法和功能不熟悉,对java中的异常处理理解不透彻。

0 0
原创粉丝点击