android图片浏览功能,怎么在Android应用中实现一个网页图片浏览功能

怎么在Android应用中实现一个网页图片浏览功能

发布时间:2020-12-05 17:28:31

来源:亿速云

阅读:80

作者:Leah

本篇文章给大家分享的是有关怎么在Android应用中实现一个网页图片浏览功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

基本功能:输入图片的url然后点击按钮加载出来图片

activity_main.xml

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">

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:id="@+id/iv"

android:layout_weight="1000"

/>

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" />

android:text="浏览"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:onClick="click"/>

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应用中实现一个网页图片浏览功能,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/521555.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

qt编译实现简单的文本编译器有粘贴复制_qmake 时复制文件(自动在编译前做一些操作,且写在.pro文件里)...

SQL语句判断数据库、表、字段是否存在from master..sysdatabases where nameTestDB) print TestDB存在else print TestDB不存在 --判断表[Te ...python之模块模块即一推代码的集合来实现某个功能,使用时直接调用,甚是方便. 模块又分为三种 自定义模块 内置模块 第三方模块…

iphone字体_iPhone 适合老人盘吗?

过年的时候,有多少人会选择给家里的老人购买一台新智能手机做为礼物呢?又有多少人选择赠送的手机是 iPhone 呢? (图片来自网络)很久以前,咆哥就看见很多有关‘ iPhone ’是否可以作为孝心机的话题&#xff…

干货 | 金融级消息队列的演进 — 蚂蚁金服的实践之路

摘要: 小蚂蚁说: 消息队列作为一个数据的集散中心,承载了越来越多的场景和数据,从最开始的 OLTP 到 OLAP,甚至再到物联网、人工智能、机器学习等场景,都有很大的想像空间。 在能力上,消息队列现…

海底光缆,到底是怎么安装和维护的?

戳蓝字“CSDN云计算”关注我们哦!作者 | 鲜枣课堂责编 | 阿秃大家应该都知道海底光缆是什么吧?没错!简单来说,就是埋在海底的光纤线缆。如今这个时代,我们每天都在上网。通过上网,我们可以随时和世界各地保…

推荐 12个Idea 免费实用插件及插件离线安装方法

https://blog.csdn.net/huoqilinheiqiji/article/details/86622154 https://blog.csdn.net/dingzfeng/article/details/80566906

android padding作用,android:padding和android:layout_margin的区别

简单点来说:android:padding是内边距,控件本身的内容与控件边缘的距离。android:layout_margin是外边距,控件与其他控件之间的距离。下面以具体的例子来进行解释:1、不设置边距android:layout_width"match_parent"andro…

stream流倒序排序_java8 stream多字段排序

注:转载请注明出处!!!!!!!很多情况下sql不好解决的多表查询,临时表分组,排序,尽量用java8新特性stream进行处理使用java8新特性,下面先来点基础的List list; 代表某集合//返回 对象集合以类属性一升序排序list.stream().sorted(Comparator.comparing(类::属性一));//返回 对象集…

8张图理解Java

摘要: 一图胜千言,下面图解均来自Program Creek 网站的Java教程,目前它们拥有最多的票选。如果图解没有阐明问题,那么你可以借助它的标题来一窥究竟。8张图理解Java一图胜千言,下面图解均来自Program Creek 网站的Java…

云栖大会|十年阿里云存储进化史:今天最好的表现就是明天最低的要求

戳蓝字“CSDN云计算”关注我们哦!科技创新的能力仍然是俘获市场用户的必要条件,而善于发现新需求的敏锐嗅觉以及直面挑战的魄力,更是巨头企业的绝杀武器。随着大数据、人工智能等新兴技术的发展,图像语音识别、智能机器人、自动驾…

他在阿里的逆袭,只因为想做个“锤子”

摘要: 我叫孟白,这是我在阿里的第五年。这五年,我从一个外包工程师,到同事眼中的“铁打的”技术专家。填过无数次坑,也无数次想过放弃。留在阿里,是因为同事一句无意间的玩笑:“你只能做钉子&am…

vb6 判断打印机是否有效_讲述3D打印机怎么用 初学者必看

许多朋友买来了3D打印机,但却不知道如何下手,其实,3D打印机远远没那么复杂。那么,今天就来简单说一下3D打印机怎么用?第一步:创建模型想要玩转3D打印,最重要也是必不可少的环节就是建模!现在可以绘制三维图…

Intellij Idea 离线安装插件

一、idea插件下载地址 http://plugins.jetbrains.com/ 二、下载插件 安装插件 1、下载插件&#xff1a; 2、安装插件&#xff1a; settings -> plugins -> install plugin from disk&#xff0c;然后重启IDEA即可。 <!-- https://mvnrepository.com/artifact/org…

android dialog自定义圆角,Android自定义Dialog实现通用圆角对话框

前言&#xff1a;圆角对话框在项目中用的越来越多&#xff0c;之前一篇文章有介绍过使用系统的AlertDialogCardView(Android中使用CardView实现圆角对话框)实现了圆角对话框的样式&#xff0c;今天介绍自定义Dialog实现通用的圆角对话框。效果图&#xff1a;1.继承自AlertDialo…

k8s通过yaml创建pod_Kubernetes根据yaml创建pod的时候8080访问被拒绝报错

本人首次学习关于Kubernetes的相关知识&#xff0c;根据Kubernetes的权威指南做了一个关于Kubernetes的一个小测试相关环境是&#xff1a;centos7 64位Kubernetes 1.5.2docker 1.13.1etcd 3.2.22etcd&#xff0c;Kubernetes&#xff0c;docker安装完毕&#xff0c;之后讲防…

Dubbo开源现状与未来规划

摘要&#xff1a; Dubbo 在过去一段时间疏于维护&#xff0c;去年阿里高调宣布重启 Dubbo 开源之后&#xff0c;社区里问的最多的问题是&#xff0c;这次开源与上次有什么一样&#xff0c;还有就是 Dubbo 和 Spring Boot、Spring Cloud 是什么关系&#xff1f;希望通过这次Dubb…

漫画:什么是囚徒困境?

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 小灰责编 | 刘丹故事发生在小灰小时候......囚徒困境讲的是一件怎样的事情呢&#xff1f;话说某一天&#xff0c;警察抓到了嫌疑犯小A和小B&#xff0c;虽然明知道他们肯定是罪犯&#xff0c;却没有决定性的证据。于是警察想…

Dubbo Cloud Native 之路的实践与思考

摘要&#xff1a; Cloud Native 应用架构随着云技术的发展受到业界特别重视和关注&#xff0c;尤其是 CNCF&#xff08;Cloud Native Computing Foundation&#xff09;项目蓬勃发展之际。Dubbo 作为服务治理的标志性项目&#xff0c;自然紧跟业界的潮流&#xff0c;拥抱技术的…

android mtk 按键,Android 4.0 虚拟按键、手机模式、平板模式(转)

nullem;text-align:left">平台信息:内核&#xff1a;linux2.6/linux3.0系统&#xff1a;android/android4.0平台&#xff1a;S5PV310(samsungExynos4210/4412)作者&#xff1a;xubin341719(欢迎转载&#xff0c;请注明作者) 三星新拿回来来的BSP&#xff0c;编译后没…

y电容如何选型_干式试验变压器选型依据

湖北中试高测电气控股有限公司为您解答&#xff1a;干式试验变压器选型依据干式试验变压器是电力系统中常用的设备之一&#xff0c;适用于各种电气设备绝缘性能的现场检测。当前市面上的干式试验变压器品牌、种类众多&#xff0c;如何才能选购到最适合自己使用的产品呢&#xf…

eplan如何导入access_EPLAN如何助力汽车行业的智能制造转型?

本文从汽车行业智能制造建设需求出发&#xff0c;结合EPLAN服务全球汽车行业企业实现智能制造的最佳实践&#xff0c;介绍了EPLAN在汽车行业智能制造建设过程中所能提供的完整、成熟的电气设计解决方案。作者&#xff1a;Eplan 王阳 | 来源&#xff1a;e-works一、汽车行业快速…