Android 访问网络图片

Android如何从服务器获取图片 立即下载

在android开发中,经常会遇到从后台服务器上获取网络图片,在此我会通过用Tomcat创建一个本地服务器,在该服务器中放置一张图片然后访问它并显示在手机界面上。

1.打开Tomcat服务器,(找到Tomcat安装路径)如图

点击startup.bat会出现下图说明服务器已配置好

然后打开浏览器输入http://localhost:8080会出现如下图所示

接着在服务器中放置一张图片,具体操作:打开tomcat安装路径,在E:\jsp\apache-tomcat-7.0.37\webapps\ROOT文件中放置图片sex.jpg如图所示

接着浏览器输入http://localhost:8080/sex.jpg即可查看图片

至此服务器端就设置好了,现在打开Eclipse,新建一个项目测试访问图片的程序

1.搭建界面文件名为activity_search.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/gray"
    android:orientation="vertical" >

   <!--  <include layout="@layout/activity_search_header" /> -->

    <EditText
        android:id="@+id/tt_url"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/imageurl" />

    <Button
        android:id="@+id/btn_submit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="确定" />

    <ImageView
        android:id="@+id/net_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

   

</LinearLayout>

2.创建一个类继承Activity
/**
 * 
 */
package com.example.park;

import com.example.park.service.ImageService;

import android.app.Activity;
import android.view.View.OnClickListener;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;

/**
 * 我的资料Activity
 * 
 * @author 
 * @since
 */
public class MyInfoActivity extends Activity implements OnClickListener
{
  private EditText tt_url;
  private Button btn_submit;
  private ImageView net_image;

  @Override
  protected void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_search);

    initCompent();

    btn_submit.setOnClickListener(this);
  }

  /**
   * 初始化控件
   */
  private void initCompent()
  {
    tt_url = (EditText) this.findViewById(R.id.tt_url);
    btn_submit = (Button) this.findViewById(R.id.btn_submit);
    net_image = (ImageView) this.findViewById(R.id.net_image);
  }

  @Override
  public void onClick(View v)
  {
    switch (v.getId())
    {
    case R.id.btn_submit:
      String path = tt_url.getText().toString();
      byte[] data;
      try
      {
        data = ImageService.getImage(path);//一个封装类访问网络数据得到的是byte格式的数据
        Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);//将byte格式的数据解析成Bitmap对象
        net_image.setImageBitmap(bitmap);
      } catch (Exception e)
      {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
      break;
    default:
      break;
    }
  }
}
3.实现ImageService.getImage(path)方法:代码如下

package com.example.park.service;

import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import com.example.park.util.StreamTool;

/**
 * 访问网络图片
 * 
 * @author syj
 * 
 */
public class ImageService
{

  public static byte[] getImage(String path) throws Exception
  {
    URL url = new URL(path);//生成URL
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();//打开链接
    connection.setReadTimeout(5000);//设置读取超时时间
    connection.setRequestMethod("GET");//设置网络访问方式“GET”
    // 判断是否链接成功
    if (connection.getResponseCode() == 200)
    {
      InputStream inStream = connection.getInputStream();//得到输入流
      byte[] data = StreamTool.getByteArray(inStream);//一个封装好的类将流文件转换成byte字节数组
      return data;
    }
    return null;
  }

}
4.实现StreamTool.getByteArray(inStream)方法:

package com.example.park.util;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;

/**
 * 流转换成byte字节数组
 * 
 * @author syj
 * 
 */
public class StreamTool
{

  public static byte[] getByteArray(InputStream inStream) throws Exception
  {
    ByteArrayOutputStream outStream = new ByteArrayOutputStream();
    byte[] buffer = new byte[1024];
    int length = 0;
    while ((length = inStream.read(buffer)) != -1)
    {
      outStream.write(buffer, 0, length);
    }
    inStream.close();
    return outStream.toByteArray();
  }
}
至此编码部分已完成,不过该项目中需要注意点是由于android是个操作系统,windows也是一个操作系统,因此在图片路径的问题上要注意不可在android中奖路径写成http://localhost:8080/sex.jpg这种格式,我们应该通过cmd找出本机IP地址如图

将localhost换成10.223.113.26(这个会经常变化的)此时在浏览器中打开该链接也会得到图片

将该项目部署到模拟器上如图

至此已完成编码测试,如有疑问敬请留言。

最佳量化交易的计算机操作系统 本文在Creative Commons许可证下发布   我经常被问到的一个问题是:用哪种计算机操作系统和计算软件进行量化交易的理论研究和代码实现?   我想把这个问题简化,从挑选的计算软件和计算库来反推最佳使用的计算机操作系统。简而言之,就是在本文撰写的时候而言,如果你想进行基于任何严肃的数学理论和金融量化交易研究理论,这里特指机器学习或者深度学习。并且需要在本地研究机器上使用桌面版本,... 阅读详情

相关推荐

python基础语法与数据结构

本文摘要: Python基础语法包含输入输出、函数、变量、数据类型及运算符等内容。输入函数input()获取键盘输入并以字符串存储,输出函数print()可格式化输出数据。函数通过def定义,可带参数和返回值,提高代码复用性。变量无需声明类型,可动态赋值。数据类型包括数字、字符串、布尔及复合类型,可通过type()查看。运算符包含算术、赋值等类型,其中复合赋值运算符如+=可简化运算。类型转换函数如int()、str()等可实现显式类型转换。这些基础语法构成Python编程的核心要素。

MM602388的博客 434

Android 网络图片查看显示的实现方法

关注微信号:javalearns   随时随地学Java 或扫一扫 随时随地学Java 本篇文章小编为大家介绍,Android 网络图片查看显示的实现方法,需要的朋友参考下。 我们的应用或多或少都会从网络获取图片数据然后进行显示,下面就将实现一个这样的例子,获取网络中的图片! 首先:我们来看一下效果图 界面中有三个控件,一个E

517

计算机组成原理实验logisim(四)之运算器实验

注意,上半张图中所有连入32位宽多路选择器的器件和的“数据位宽”都是32,而中间部分连入1位多路选择器的器件的“数据位宽”皆为1(除了连向“32位加法器”的那一个非门,是32位)。第二到第五个实验的测试,具体怎么测试好吧我也不太清楚,听室友说就是让你分析各种亮灯的原理,比如你点这个,那个为什么颜色要变等等,我就不粘图了,恩大家加油。连图如下,需要在连线之前格外注意“异或门”和“与门”的位宽,将16改为1,不然数据无法通行。关于学术问题,为何这样连什么的,就别问我了,我也没有搞的那么透彻。

qq_54422132的博客 2万+

android客户端与本地服务器的访问(服务器本地图片怎么转化成http格式让安卓手机访问)

最近自己撸了一套手机端和服务端的代码,但是其中遇到了一些问题特此记录一下,也给有需要的小伙伴们借鉴下 1.首先安卓客户端将图片上传到服务端,服务端将照片保存到本地(比如放在D:\uploads目录下) 这是电脑服务器端的显示,但是如果安卓想要访问到服务器端的这张照片的话,要怎么访问呢? 2.通过tomcat来将服务端本地的图片地址转化为Http://localhost:8080/fsfa...

iblue007的博客 2067

SAP CO实战:如何用KKA2/CJ88结果分析码搞定项目收入成本匹配(附真实案例)

本文深入解析了SAP CO模块中结果分析码KKA2/CJ88的核心应用,通过真实案例详细阐述了如何在成本波动剧烈的销售型项目中,运用结果分析实现收入与成本的精准匹配。文章重点拆解了不同结果分析方法的适用场景与财务影响,并提供了从配置、操作到问题排查的完整实战指南,帮助财务顾问提升项目财务管理能力。

qsc9012345的博客 608

六轴机器人正解

采用的是John H.Craig在【机器人学导论】中的改进DH模型 1.六轴坐标系 2.DH参数 i αi−1\alpha_{i-1}αi−1​ ai−1a_{i-1}ai−1​ did_idi​ θi\theta_iθi​初值 1 0 0 0 0 2 -90 a1a_1a1​ 0 -90 3 0 a2a_2a2​ 0 -90 4 -90 a3a_3a3​ d4d...

m0_37581770的博客 2511

android 点击网络图片大全,android查看网络图片的实现方法

本文实例为大家分享了android查看网络图片的具体代码,供大家参考,具体内容如下需求描述: 输入一个 图片地址,下载到本地 展示。效果展示代码清单MainActivity.javapackage com.example.www.checkimage;import android.graphics.Bitmap;import android.graphics.BitmapFactory;impor...

weixin_32480335的博客 318

Pixhawk变砖自救指南:从DFU模式到固件重刷全流程(附2.4.8实测)

本文详细介绍了Pixhawk飞控变砖后的自救方法,从DFU模式进入、固件重刷到高级恢复技巧全流程。特别针对国产版本boot0引脚未引出的特殊情况提供了解决方案,帮助用户通过QGC或Mission Planner地面站工具恢复飞控功能,适用于2.4.8等常见固件版本。

weixin_29168813的博客 338

android显示网络图片控件,Android控件之ImageView(二)

前言在上一篇文章中,我们讲解了如何加载本地图片,那么在实际项目中 ImageView 大多数使用场景是加载网络图片,网络图片其实就是存储在服务器上的文件,我们需要从服务器获取到文件的二进制输入流 Inpustream ,然后将其转化为 ImageView 可以加载的 Bitmap 对象。实现网络图片的加载。这篇文章我们通过使用原始的网络连接和使用第三库来简单讲解 ImageView 网络图片的加载...

weixin_39599372的博客 671

BPMN-JS :修改节点“Change Type”事件类型

修改路径:node_modules\bpmn-js\lib\features\replace\ReplaceOptions.js。

TaylorY的博客 679

游戏引擎揭秘:大厂为何死磕自研?

游戏引擎本质与商业价值解析 游戏引擎是集成了渲染、物理、动画等核心功能的开发工具包,其价值在于让开发者免于重复编写底层代码,专注于游戏内容创作。商业引擎(如Unity/Unreal)虽降低了开发门槛,但头部厂商仍坚持自研引擎,主要基于以下考量: 经济性:长期项目分摊自研成本后,比商业引擎分成更划算; 可控性:完全掌握底层代码,能针对性优化核心玩法需求; 技术壁垒:专属引擎成为厂商的竞争优势,如米哈游的跨平台渲染技术; 项目适配:超大型游戏(开放世界/MMO)需要深度定制解决方案。 这种"短期高投入

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 263

android编辑访问网络图片

效果图片 开发步骤 1,获取控件对象 2,button按钮设置监听器,方法体中启动线程(必须使用线程访问网络)。 3,在线程run方法体中,获取并创建URL对象,判断不为空。 不为空,则取得HttpURLContent对象,在判断响应吗为200,若是则用输入流读取图片并封装到Bitmap对象。 4,若上步成功,则使用handler通知界面主线程中ImageView设置

u013080267的博客 453

一根同轴线,真的扛得住 4K 吗? ——从摄像头带宽算起,聊透车载 SerDes 接口选型

如果你记住这三句话,这篇文章就值了:🎯摄像头带宽 = 分辨率 × 位深 × fps × 开销4K RAW 摄像头 ≈ 3.7Gbps,是现实不是理论SerDes 选型,宁可多留 20%,不要刚刚好。

weixin_43199439的博客 193

android访问网络图片

package com.example.android;import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL;import android.os.Bundle; import android.os.Handler

苹果香蕉哩 544

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

android访问网络,下载图片,并设置UI

android从20008年的谷歌I/o大会上脱颖而出,在那个还是诺基亚独霸天下的时代,凭借其良好的用户体验,以及开源性,迅速获得了大批用户,最终干掉了诺基亚,同时也将我们从功能机时代带到了智能机时代,android实现了从1.0到6.0的转变,版本之间的差距还是极大的。 好了,言归正传,今天介绍的事android下的访问网络图片的知识,其中一个要点就是和android版本有关!

都市桃源 1255

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

安卓网络通信与服务访问网络上的图片

网络通信与服务 1.web服务器简介 web:www,world wide web。服务器,主要有如下几类: IIS:Internet Informatioin Services缩写,是微软公司出品的服务器产品,主要解析的是微信开发多一些编程语言,例如asp.net等。 apache:开源的,主要是web服务 tomcat:apace子项目,主要是java语言,这个就不再讲了,将来我们的服务器交互以java的服务器交互为主。 2.HTTP简介 超文本传输协议,浏览器与web服务器交互的应用层通信协议。 3.

张晨光老师的播客 2852

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Android访问网络图片

安卓获取网络图片

cmx5201314的博客 312

Android网络:HTTP之利用HttpURLConnection访问网页、获取网络图片实例 (附源码)

如前文所示的TCP局域网传送东西,除了对传输层的TCP/UDP支持良好外,Android对HTTP(超文本传输协议)也提供了很好的支持,这里包括两种接口:1、标准Java接口(java.net) ----HttpURLConnection,可以实现简单的基于URL请求、响应功能;2、Apache接口(org.appache.http)----HttpClient,使用起来更方面更强大。一般来说,用

yanzi1225627的专栏 9万+

android访问网络图片,Android网络实例:HTTP之利用HttpURLConnection访问百度、获取网络图片...

MianActivity.javapublic class MainActivity extends AppCompatActivity {Button visitWebBtn = null;Button downImgBtn = null;TextView showTextView = null;ImageView showImageView = null;String resultStr = ...

weixin_28790465的博客 284

安卓图片显示与网络访问

Picasso图片显示 Square公司开源的一个Android图形缓存库Picasso实现了图片的异步加载,并解决了Android中加载图片时常见的一些问题,它有以下特点: 1.在Adapter中取消了不在视图范围内的ImageView的资源加载,因为可能会产生图片错位; 2.使用复杂的图片转换技术降低内存的使用 3.自带内存和硬盘的二级缓存机制 引用库An...

weixin_30755393的博客 215

Android网络 HTTP之利用HttpURLConnection访问网页 获取网络图片实例 附源码

Android网络 HTTP之利用HttpURLConnection访问网页 获取网络图片实例 附源码

hhduyc的博客 627

Android开发之访问和显示网络图片

注:本文是对原博文http://blog.youkuaiyun.com/woshisap/article/details/6619449 的修改和补充。由于Android 4.0之后,Android SDK规定(而且是强制的)对网络资源的访问便不能放在主线程中进行,必须另起一条线程,同时,对UI的更新又只有主线程才能完成。为了能够使得主次线程间能够完成信息的传递,我们可以引入Handler+Message机制

Absorb Like A Sponge 813

Android网络实例:HTTP之利用HttpURLConnection访问百度、获取网络图片

MianActivity.java public class MainActivity extends AppCompatActivity { Button visitWebBtn = null; Button downImgBtn = null; TextView showTextView = null; ImageView showImageView = null; String resultStr = “”; ProgressBar progressBar = null; ViewGroup view

sfz1234567890的博客 2479

Android网络:HTTP之利用HttpURLConnection访问网页、获取网络图片实例 (附源码)

http://blog.youkuaiyun.com/yanzi1225627/article/details/22222735 如前文所示的TCP局域网传送东西,除了对传输层的TCP/UDP支持良好外,Android对HTTP(超文本传输协议)也提供了很好的支持,这里包括两种接口: 1、标准Java接口(java.net) ----HttpURLConnection,可以实现简单的基于URL请求

billhello 803

Android 实现网络访问图片

1布局文件 main.xml http://schemas.android.com/apk/res/android"     android:layout_width="fill_parent"     android:layout_height="fill_parent"     android:orientation="vertical" >            

李浩然的专栏 1183

android加载ftp图片,按键安卓版网络访问之 图片处理,FTP,HTTP 实现

该楼层疑似违规已被系统折叠隐藏此楼查看此楼必备工具:1.海草同步器 下载地址: http://pan.baidu.com/s/1c0nLwi82.修改版 File.lua : http://pan.baidu.com/s/1o69fE1G按键精灵代码://Http获取HTTP请求Function HttpGet(url)Dim sTime,rpath,requestPathsTime = Tim...

weixin_27653327的博客 401
上一篇: Android 中的SQLite数据库的使用
下一篇: 固定Textview,字体随着字数的多少字体动态变化大小
Warkey_Song
博客等级 码龄14年 3粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值