本节采用两种方法创建Bitmap对象。主要过程是在xml中创建两个组件ImageView和Button。点击按钮下载图片,并做显示。创建了工具类HttpUtils,下载使用。
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" android:orientation="vertical" > <Button android:id="@+id/button_" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/downImg" /> <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@string/hello_world"/> </LinearLayout>
HttpUtils.java
package com.example.imageviewhttp; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; public class HttpUtils { private final static String URL_PATH = "http://192.168.78.1:8081/web/pic/logo_2.jpg";//访问网络图片的路径 public HttpUtils() { } /** * 从网络中获取图片信息,以流的形式返回 * @return */ public static InputStream getImageViewInputStream(){ InputStream inputStream = null; try { URL url = new URL(URL_PATH); if(url!=null) { HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); httpURLConnection.setConnectTimeout(3000); httpURLConnection.setRequestMethod("GET"); httpURLConnection.setDoInput(true) ; int resonpseCode = httpURLConnection.getResponseCode(); if(resonpseCode == 200){ inputStream = httpURLConnection.getInputStream(); } } } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return inputStream; } /** * 从网络中获取图片西悉尼,以字节数组的形式放回 * @return */ public static byte[] getImageViewArray(){ byte [] data = null; InputStream inputStream = null; // 不需要关闭的输出流,直接写入内存中。 ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); try { URL url = new URL(URL_PATH); if(url!=null) { HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); httpURLConnection.setConnectTimeout(3000); httpURLConnection.setRequestMethod("GET"); httpURLConnection.setDoInput(true) ; int resonpseCode = httpURLConnection.getResponseCode(); int len = 0; byte[] b_data = new byte[1024]; if(resonpseCode == 200){ inputStream = httpURLConnection.getInputStream(); ; while ((len =inputStream.read(b_data)) !=-1){ outputStream.write(b_data, 0, len); } data = outputStream.toByteArray(); } } } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ if(inputStream!=null){try { inputStream.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }} } return data; } }
MainActivity.java
import java.io.InputStream; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageView; public class MainActivity extends Activity implements OnClickListener{ private ImageView imageview; private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageview = (ImageView) this.findViewById(R.id.imageView); button = (Button) this.findViewById(R.id.button_); button.setOnClickListener(this); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } public void onClick(View v) { // 方法一 // InputStream inputStream = HttpUtils.getImageViewInputStream(); // Bitmap bitmap = BitmapFactory.decodeStream(inputStream); // 方法二 byte[] data = HttpUtils.getImageViewArray(); Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length); imageview.setImageBitmap(bitmap); } }
相关推荐
【Android课程设计源码仿QQ音乐播放器安卓版项目】是一个针对Android开发的学习资源,旨在帮助学生或开发者了解如何在Android平台上构建一个类似QQ音乐的应用。这个项目涵盖了多个关键的Android开发知识点,包括用户...
7. **第三方库**:许多开源库可以帮助简化开发过程,例如Retrofit用于网络请求,Glide或Picasso用于图片加载, ROOM数据库库用于更现代的数据持久化等。 8. **Android Studio**:作为官方的集成开发环境(IDE),...
5. **查看图片功能**:在安卓应用中,显示图片通常用到ImageView组件,加载图片可能需要使用像Glide或Picasso这样的第三方库,它们能优化图片的加载和显示,处理网络图片和本地图片的加载问题。 6. **安卓布局设计*...
《安卓(Android)期末课程设计-图片浏览器》 在当今移动互联网时代,Android平台作为全球最流行的智能手机操作系统之一,为开发者提供了广阔的创新空间。对于学习Android编程的学生来说,期末课程设计是一个展示...
4. **获取图片路径**:从SD卡上获取图片的完整路径,可以结合`File`对象和`listFiles()`方法。遍历得到的文件对象,检查文件是否为图片(常见后缀如.jpg, .png)。 5. **加载图片**:Android提供了多种方式加载图片...
【Android课程设计——安卓旅行日志APP】 在本次Android课程设计中,我们将专注于构建一个功能丰富的安卓旅行日志应用程序。这个应用将为用户提供记录、管理和分享他们的旅行经历的平台,充分展示Android开发技术的...
本项目是一个基于Android平台的在线订餐系统,适用于学习Android应用开发的学生进行课程设计或实践。这个项目提供了完整的源码,包含实现在线订餐功能的所有模块,并附带了一个可安装的APK文件,方便在Android模拟器...
【安卓(Android)期末课程设计-食谱】项目是一个针对K12阶段学生设计的Android应用实例,旨在帮助学生学习并实践Android应用开发。这个项目适用于那些正在学习Android编程,并需要完成期末作业的学生。它提供了一个...
【描述】:本报告详细介绍了移动互联网开发课程设计项目,即在安卓平台上开发一款简易的新浪微博客户端。通过这个项目,学生将提升安卓程序开发技能,学习认证协议原理,并掌握如何使用新浪提供的API接口。 **知识...
对于项目资源和本地图片的加载,我们可以直接通过Android的Resources类获取图片资源,或者通过FileInputStream读取本地文件。这些方法同样需要在后台线程执行,然后将结果传递回主线程进行显示。 接下来是双指缩放...
该Android课程设计项目主要关注的是空气质量指数(AQI)和PM2.5的实时查询与展示,这在当今环保意识日益增强的社会中具有很高的实用价值。PM2.5是指空气中直径小于或等于2.5微米的颗粒物,对人类健康和环境影响较大...
【Android仿安卓美团界面开发详解】 在Android应用开发领域,毕业设计往往是一个展现技术实力和个人创新能力的重要环节。本项目——“Android仿安卓美团界面”是一个典型的案例,它旨在模仿美团APP的用户界面,帮助...
【Android期末课程设计-个人相册】项目是一个适用于K12阶段学生学习和完成期末作业的实例,它展示了如何在Android平台上开发一个个人相册应用。这个项目可以帮助学生理解和掌握Android应用开发的基本概念和技能,...
在本课程项目“药物购买App(电商类)安卓课程项目-shoppingapp.zip”中,我们将深入探讨如何构建一个基于Android平台的电商应用,专注于药品销售。这个项目不仅涵盖了基础的安卓应用开发技术,还涉及到电商应用特有...
基于Java的Android应用程序开发-24点游戏源码+详细项目说明.zip 基于Java的Android应用程序开发-24点游戏源码+详细项目说明.zip 基于Java的Android应用程序开发-24点游戏源码+详细项目说明.zip 【项目介绍】 该资源...
在Android开发中,"课程设计Gallery从SD卡中获取图片,并显示"是一个常见的应用场景,它涉及到用户界面(UI)的设计、文件系统操作以及图像处理等多个技术领域。在本项目中,我们将深入探讨如何实现这个功能。 首先...
爱篮球论坛可能会使用到各种UI组件,如ListView、RecyclerView展示论坛帖子,EditText供用户输入评论,Button实现交互功能,以及ImageView展示图片等。同时,我们还需要考虑如何使用Adapter和ViewHolder模式优化列表...
Android系统提供了丰富的API,如Bitmap类用于加载和显示图片,ImageView组件则用于在界面上展示图片。在设计图片查看器时,开发者需要考虑如何高效地加载大图,避免内存溢出,这可能涉及到Bitmap的解码方式(如使用...
【安卓仿QQ毕设】是针对计算机科学与技术专业学生设计的一个毕业设计项目,主要目标是构建一个类似于腾讯QQ的移动应用,适用于Android操作系统。这个项目不仅提供了源代码,还包含【开题报告】和【论文】,为学生...
11. **ImageView**:显示图片的视图,可以结合Glide或Picasso等库实现图片加载优化。 12. **RecyclerView**:替代ListView的高效列表控件,支持滚动优化和复杂的视图复用策略,适合展示大量数据如微博列表。 13. *...