`
yang__yuan
  • 浏览: 28577 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类

Android客户端如何从Web服务端加载图片

阅读更多

在android项目研发中,相信很多小伙伴都会遇到app上需要加载图片的时候,很多初学的小伙伴对此会感到比较头疼,这里我就详细滴讲一下关于android中加载图片的方法。

无论是加载自己图片,还是网络上的图片,最大的区别在于获取图片的链接。。。

一,首先做一个web端的服务,将图片发布在Jboss或者Tomcat中,通过链接可以获取到图片。

       这里做一个动态获取图片的案例,将其他地址的图片,获取后保存到Jboss项目目录下面:

//代码片段,从文件夹里获取一张图片存储到jboss项目路径中

 byte[]  buffer=readImgData(pathStr);
File  imgfile=new File("F:\\jboss\\server\\default\\deploy\\MyFirstWebServices.war\\temp.jpg");
       //判断文件是否存在
       if(!imgfile.exists()){
        imgfile.delete();
       }
       FileOutputStream  output=new FileOutputStream(imgfile);
       output.write(buffer);
       output.flush();
       output.close();

//从一个图片路径中获取图片 

public byte[] readImgData(String filepath){
  try{
    File  file = new File(filepath);
    FileInputStream  input = new FileInputStream(file);
    ByteArrayOutputStream  output = new ByteArrayOutputStream();
    byte[]  buffer=new byte[1024];
    int len = 0;
    while ((len = input.read(buffer))!=-1) {
     output.write(buffer, 0, len);
    }

    input.close();
    return output.toByteArray();
    }catch(Exception e){
     e.printStackTrace();
    }  
    return null;
   }

 项目部署好后发布项目即可访问到图片信息如下:

http://localhost:8080/MyFirstWebServices/temp.jpg;

二,android中显示图片的代码。

1.imgshow.xml中的代码片段,放一个imageview即可

       <ImageView
                    android:id="@+id/sat_show_image"
                    android:layout_width="400dp"
                    android:layout_height="200dp" 
     android:layout_gravity="center"
     android:scaleType="fitXY" 
                    android:layout_centerVertical="true"
     android:layout_span="2"
     />

2.imgshow.java代码片段

 private ImageView  satimg;
 String imageUrl="http://localhost:8080/MyFirstWebServices/temp.jpg";
  private Handler handler = new Handler(){
         public void handleMessage(Message msg) {
             switch (msg.what) {
             case 0:
                 Bitmap bit = (Bitmap) msg.obj;
              satimg.setImageBitmap(bit);
              satimg.setScaleType(ImageView.ScaleType.FIT_XY);
                 break;
             default:
                 break;
             }
         };

     };

@Override
 protected void onCreate(Bundle savedInstanceState)
 {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  setContentView(R.layout.imgshow);

  satimg = (ImageView)findViewById(R.id.sat_show_image);

  record_img.setOnClickListener( new OnClickListener()
  {
   
   @Override
   public void onClick(View arg0)
   {
    // TODO Auto-generated method stub
                 //新建线程加载图片信息,发送到消息队列中 
                 new Thread(new Runnable() { 
  
                     @Override 
                     public void run() { 
                         // TODO Auto-generated method stub 
                         Bitmap bmp = getURLimage(imageUrl); 
                         Message msg = new Message(); 
                         msg.what = 0; 
                         msg.obj = bmp; 
                         System.out.println("000"); 
                         handler.sendMessage(msg); 
                     } 
                 }).start(); 
     }
   });
 }

 

  //加载图片 
    public Bitmap getURLimage(String url) { 
        Bitmap bmp = null; 
        try { 
            URL myurl = new URL(url); 
            // 获得连接 
            HttpURLConnection conn = (HttpURLConnection) myurl.openConnection(); 
            conn.setConnectTimeout(6000);//设置超时 
            conn.setDoInput(true); 
            conn.setUseCaches(false);//不缓存 
            conn.connect(); 
            InputStream is = conn.getInputStream();//获得图片的数据流 
            bmp = BitmapFactory.decodeStream(is); 
            is.close(); 
        } catch (Exception e) { 
            e.printStackTrace(); 
        } 
        return bmp; 
    } 

 

完成以上步骤,即可在app中显示图片。

分享到:
评论

相关推荐

    Android客户端+web服务端实现图片上传

    在Android客户端与Web服务端实现图片上传的过程中,涉及到的关键技术和知识点包括Android应用开发、网络通信、文件处理以及Java EE服务器端编程。以下是这些领域的详细解释: 1. **Android客户端开发**: - **...

    android webservice 客户端、服务端实例

    在Android客户端,通常使用HTTP库来调用Web Service接口。Android SDK内置了`HttpURLConnection`,但现代项目更倾向于使用第三方库,如`OkHttp`或`Volley`,它们提供了更高效的网络通信和错误处理。 1. **OkHttp**:...

    Android购物商城App+客户端+服务端+数据库

    《构建完整的Android购物商城系统:从客户端到服务端详解》 在移动互联网时代,购物商城App已经成为电商领域不可或缺的一部分。Android平台上的购物商城App更是占据了重要地位,它们为用户提供便捷的商品浏览、购买...

    Android应用源码之通过Android客户端访问web服务器,实现一个登录功能,服务端+数据库+安卓端.zip

    总的来说,这个项目涉及到了Android客户端开发、Web服务端开发、数据库设计和网络通信等多个方面,是学习Android应用开发和服务器交互的实用案例。通过深入研究和实践这个源码,开发者可以掌握Android应用与Web...

    Android 仿QQ客户端及服务端源码.zip

    在本项目中,"Android 仿QQ客户端及服务端源码.zip" 提供了一个完整的 Android 应用程序开发示例,旨在帮助开发者理解和学习如何构建类似 QQ 的即时通讯应用。这个项目涵盖了 Android 客户端与服务端的交互,涉及到...

    安卓开发-通过Android客户端访问web服务器,实现一个登录功能,服务端+数据库+安卓端.zip

    在安卓应用开发中,实现一个通过Android客户端访问Web服务器的登录功能是一项基本任务。这个过程涉及到客户端、服务端以及数据库的交互,确保用户能够安全、有效地登录到应用程序。以下将详细讲解这一过程的关键知识...

    Android客户端访问web服务器

    在Android客户端访问Web服务器的场景中,主要涉及的是Android应用开发和网络通信技术。这个过程通常包括以下几个关键知识点: 1. **HTTP/HTTPS 协议**:Android客户端与Web服务器之间的通信大多基于HTTP或HTTPS协议...

    Android 仿QQ客户端及服务端源码

    在本项目中,"Android 仿QQ客户端及服务端源码" 提供了一套...通过对这个项目的学习和研究,开发者不仅可以提升Android客户端的开发技能,还能深入了解即时通讯服务端的构建,从而为开发自己的通讯应用打下坚实的基础。

    Android客户端+WEB服务器端完整代码

    该资源包含一个完整的Android客户端应用和WEB服务器端的开发代码,名为"Android客户端+WEB服务器端完整代码",主要用于构建一个新闻信息管理系统。系统的主要特点是实现了客户端与服务器端的交互,便于用户获取和...

    Android客户端与服务端交互

    本文将深入探讨Android客户端如何与服务端进行交互,以登录示例为切入点,详细介绍整个交互过程。 首先,服务端通常采用Web服务的形式提供接口,这里使用的是Java的Servlet技术。Servlet是一种用于扩展服务器功能的...

    教务管理系统 android 客户端和 web服务器

    掌握基于HttpClient、JSON数据...掌握将服务器响应装换为JSON对象或数组、通过Android客户端加载服务器响应; 开发java web project作为服务端; 开发Android客户端; 采用HttpClient的方式在服务端和客户端进行通信;

    安卓listview相关相关-android客户端请求.netWeb服务端请求后的数据json解析展示在listview上.rar

    本示例项目"安卓listview相关相关-android客户端请求.netWeb服务端请求后的数据json解析展示在listview上.rar"聚焦于如何从.NET Web服务获取JSON数据,并在Android客户端的ListView中进行解析和展示。以下是关于这一...

    android listview从mysql加载数据和图片

    这个过程涉及到Web服务端、Android客户端以及MySQL数据库的交互。 首先,我们需要在服务器端创建一个Web服务,它可以是基于RESTful API的,通过HTTP请求来获取或更新数据。通常,这个服务会使用PHP、Java或Python等...

    android开源项目源码,完整商城项目源码(服务端+客户端)

    1. **Android客户端开发**: - **UI设计**:客户端的界面设计遵循了Material Design规范,提供了丰富的用户体验。开发者可以通过源码学习如何使用Android Studio进行布局设计,理解各控件的使用和交互逻辑。 - **...

    Android客服端和服务端互通,并且JSP显示!

    在Android客户端与服务端互通的过程中,开发者通常会涉及到网络通信、数据传输格式、服务器接口设计以及前端展示等多个关键环节。本教程将重点关注Android与服务端的交互,以及使用JSP进行数据展示。以下是对这些...

    Android通讯录(含服务端)

    - **Web服务**:服务端通常通过RESTful API为Android客户端提供数据交互接口,如GET请求获取联系人列表,POST请求新增或更新联系人等。 - **后端框架**:常见的有Spring Boot、Django、Node.js等,选择合适的后端...

    若水新闻全部源码(客户端源码+服务端源码)

    6. **性能优化**:客户端可能进行了缓存策略、异步加载、数据压缩等优化,服务端可能涉及数据库索引优化、减少HTTP请求数等。 7. **响应式设计**:为了适配不同设备和屏幕尺寸,客户端可能使用了Flexbox(Android)...

    基于android的大学生家教APP的设计与实现(服务端+客户端+数据库).rar

    总结,基于Android的大学生家教APP设计与实现是一个综合性的项目,涵盖了Android客户端开发、服务端开发以及数据库设计等多个技术领域。通过这个项目,开发者不仅能提升自己的技术能力,还能理解到一款完整的移动...

    Android客户端京东商城高仿源代码

    3. 图片加载库:如 Glide 或 Picasso,用于优化图片的加载和显示,防止内存溢出。 4. JSON解析:除了SOAP,应用可能还使用JSON格式与服务器交互,需要解析JSON数据填充UI。 5. 网络状态检测:利用...

Global site tag (gtag.js) - Google Analytics