当前位置:主页 > 移动开发 > Android代码 >

Android实现网页图片浏览功能

时间:2020-11-02 17:47:31 | 栏目:Android代码 | 点击:

本文实例为大家分享了AndAndroid实现网页图片浏览的具体代码,供大家参考,具体内容如下

基本功能:输入图片的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(); 
  } 
 } 

 这样基本功能就能实现了。

您可能感兴趣的文章:

相关文章