Android实现网页图片浏览功能

所属分类: 软件编程 / Android 阅读数: 1459
收藏 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按时间先后顺序获取目录下文件列表

这篇文章主要为大家详细介绍了Android按时间先后顺序获取目录下文件列表,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Android获取手机信息的工具类

这篇文章主要为大家详细介绍了Android获取手机信息的工具类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Android自定义标尺滑动选择值效果

这篇文章主要为大家详细介绍了Android自定义标尺滑动选择值效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Android selector状态选择器的使用详解

这篇文章主要为大家详细介绍了Android selector状态选择器的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Android实现长图展开与收起效果

这篇文章主要为大家详细介绍了Android实现长图展开与收起效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

自定义View之kotlin绘制折线图实例教程

折线图是我们在开发中经常会遇到的一个需求,下面这篇文章主要给大家介绍了关于自定义View之kotlin绘制折线图的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Android Studio使用ViewPager+Fragment实现滑动菜单Tab效果

这篇文章主要为大家详细介绍了Android Studio使用ViewPager+Fragment实现滑动菜单Tab效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

WebView 实现全屏播放视频的示例代码

这篇文章主要介绍了WebView 实现全屏播放视频的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Android Studio 在项目中引用第三方jar包的方法

本文分步骤给大家介绍了Android Studio 在项目中引用第三方jar包的方法,感兴趣的朋友跟随小编一起看看吧
收藏 0 赞 0 分享
查看更多