Android实现网页图片浏览功能

所属分类: 软件编程 / Android 阅读数: 1504
收藏 0 赞 0 分享

本文实例为大家分享了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(); 
  } 
 } 

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

Android隐藏顶部状态栏所遇到的问题

本文给大家分享两种隐藏状态栏的方法及在实现的过程中遇到的坑,下面在本文中给大家做个总结,希望对大家学习android顶部状态栏知识有所帮助
收藏 0 赞 0 分享

Android异常 java.lang.IllegalStateException解决方法

这篇文章主要介绍了Android异常 java.lang.IllegalStateException解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Android中Split()字符串分割特殊用法案例详解

本文通过案例的形式给大家详细介绍了android中split()字符串分割特殊用法的知识,非常不错具有参考借鉴价值,感兴趣的朋友参考下
收藏 0 赞 0 分享

Android仿新浪微博启动界面或登陆界面(1)

这篇文章主要为大家详细介绍了Android仿新浪微博启动界面或登陆界面的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Android仿新浪微博oauth2.0授权界面实现代码(2)

这篇文章主要为大家详细介绍了Android仿新浪微博oauth2.0授权界面实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Android开发中使用sqlite实现新闻收藏和取消收藏的功能

本篇文章主要介绍了sqlite实现新闻收藏和取消收藏功能,主要涉及到oracle数据库方面的内容,对于Android开发sqlite实现收藏和取消功能感兴趣的朋友可以参考下本文
收藏 0 赞 0 分享

Android仿新浪微博分页管理界面(3)

这篇文章主要为大家详细介绍了Android仿新浪微博分页管理界面,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Android UI自定义ListView实现下拉刷新和加载更多效果

这篇文章主要介绍了Android UI自定义ListView实现下拉刷新和加载更多效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Android—基于微信开放平台v3SDK开发(微信支付填坑)

这篇文章主要介绍了Android—基于微信开放平台v3SDK开发(微信支付填坑),具有一定的参考价值,有需要的可以了解一下。
收藏 0 赞 0 分享

Android仿新浪微博自定义ListView下拉刷新(4)

这篇文章主要为大家详细介绍了Android仿新浪微博自定义ListView下拉刷新,重点介绍了Adapter的详细代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享
查看更多