Android实现网页图片浏览功能

 更新时间:2017年05月23日 17:12:23   作者:Prince_J  
这篇文章主要为大家详细介绍了Android实现网页图片浏览功能,输入图片的url然后点击按钮加载出来图片,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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使用Html.fromHtml需要注意的地方

    详解Android使用Html.fromHtml需要注意的地方

    本篇文章主要介绍了详解Android使用Html.fromHtml需要注意的地方,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • flutter窗口初始和绘制流程详析

    flutter窗口初始和绘制流程详析

    这篇文章主要给大家介绍了关于flutter窗口初始和绘制流程的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用flutter具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • android中知道图片name时获取图片的简单方法

    android中知道图片name时获取图片的简单方法

    android中知道图片name时获取图片的简单方法,需要的朋友可以参考一下
    2013-05-05
  • Android来电监听和去电监听实现代码

    Android来电监听和去电监听实现代码

    本文是关于来点监听和去电监听展开问题,通过实例代码讲解,对android来电监听和去电监听的相关知识感兴趣的朋友一起看看吧
    2017-06-06
  • Android音频开发之音频采集的实现示例

    Android音频开发之音频采集的实现示例

    本篇文章主要介绍了Android音频开发之音频采集的实现示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • Android开发实现SubMenu选项菜单和子菜单示例

    Android开发实现SubMenu选项菜单和子菜单示例

    这篇文章主要介绍了Android开发实现SubMenu选项菜单和子菜单,结合实例形式分析了Android开发中SubMenu选项菜单和子菜单的功能、配置、布局等相关操作技巧,需要的朋友可以参考下
    2019-03-03
  • Android开发中计算器的sin、cos及tan值计算问题分析

    Android开发中计算器的sin、cos及tan值计算问题分析

    这篇文章主要介绍了Android开发中计算器的sin、cos及tan值计算问题,结合实例形式分析了Android三角函数运算中的弧度与角度计算问题与相关解决方法,需要的朋友可以参考下
    2017-11-11
  • Android如何设置圆角图片

    Android如何设置圆角图片

    这篇文章主要为大家详细介绍了Android如何设置圆角图片,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • Android开发之Kotlin委托的原理与使用详解

    Android开发之Kotlin委托的原理与使用详解

    我们常用的委托模式怎么使用?在 Java 语言中需要我们手动的实现,而在 Kotlin 语言中直接通过关键字 by 就可以实现委托,下面我们就一起看看不同种类的委托使用以及在 Android 常见的一些场景中的使用
    2023-03-03
  • VideoView实现视频无缝连续播放

    VideoView实现视频无缝连续播放

    这篇文章主要为大家详细介绍了VideoView实现视频无缝连续播放,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07

最新评论