在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应用开发、网络通信、文件处理以及Java EE服务器端编程。以下是这些领域的详细解释: 1. **Android客户端开发**: - **...
在Android客户端,通常使用HTTP库来调用Web Service接口。Android SDK内置了`HttpURLConnection`,但现代项目更倾向于使用第三方库,如`OkHttp`或`Volley`,它们提供了更高效的网络通信和错误处理。 1. **OkHttp**:...
《构建完整的Android购物商城系统:从客户端到服务端详解》 在移动互联网时代,购物商城App已经成为电商领域不可或缺的一部分。Android平台上的购物商城App更是占据了重要地位,它们为用户提供便捷的商品浏览、购买...
总的来说,这个项目涉及到了Android客户端开发、Web服务端开发、数据库设计和网络通信等多个方面,是学习Android应用开发和服务器交互的实用案例。通过深入研究和实践这个源码,开发者可以掌握Android应用与Web...
在本项目中,"Android 仿QQ客户端及服务端源码.zip" 提供了一个完整的 Android 应用程序开发示例,旨在帮助开发者理解和学习如何构建类似 QQ 的即时通讯应用。这个项目涵盖了 Android 客户端与服务端的交互,涉及到...
在安卓应用开发中,实现一个通过Android客户端访问Web服务器的登录功能是一项基本任务。这个过程涉及到客户端、服务端以及数据库的交互,确保用户能够安全、有效地登录到应用程序。以下将详细讲解这一过程的关键知识...
在Android客户端访问Web服务器的场景中,主要涉及的是Android应用开发和网络通信技术。这个过程通常包括以下几个关键知识点: 1. **HTTP/HTTPS 协议**:Android客户端与Web服务器之间的通信大多基于HTTP或HTTPS协议...
在本项目中,"Android 仿QQ客户端及服务端源码" 提供了一套...通过对这个项目的学习和研究,开发者不仅可以提升Android客户端的开发技能,还能深入了解即时通讯服务端的构建,从而为开发自己的通讯应用打下坚实的基础。
该资源包含一个完整的Android客户端应用和WEB服务器端的开发代码,名为"Android客户端+WEB服务器端完整代码",主要用于构建一个新闻信息管理系统。系统的主要特点是实现了客户端与服务器端的交互,便于用户获取和...
本文将深入探讨Android客户端如何与服务端进行交互,以登录示例为切入点,详细介绍整个交互过程。 首先,服务端通常采用Web服务的形式提供接口,这里使用的是Java的Servlet技术。Servlet是一种用于扩展服务器功能的...
掌握基于HttpClient、JSON数据...掌握将服务器响应装换为JSON对象或数组、通过Android客户端加载服务器响应; 开发java web project作为服务端; 开发Android客户端; 采用HttpClient的方式在服务端和客户端进行通信;
本示例项目"安卓listview相关相关-android客户端请求.netWeb服务端请求后的数据json解析展示在listview上.rar"聚焦于如何从.NET Web服务获取JSON数据,并在Android客户端的ListView中进行解析和展示。以下是关于这一...
这个过程涉及到Web服务端、Android客户端以及MySQL数据库的交互。 首先,我们需要在服务器端创建一个Web服务,它可以是基于RESTful API的,通过HTTP请求来获取或更新数据。通常,这个服务会使用PHP、Java或Python等...
1. **Android客户端开发**: - **UI设计**:客户端的界面设计遵循了Material Design规范,提供了丰富的用户体验。开发者可以通过源码学习如何使用Android Studio进行布局设计,理解各控件的使用和交互逻辑。 - **...
在Android客户端与服务端互通的过程中,开发者通常会涉及到网络通信、数据传输格式、服务器接口设计以及前端展示等多个关键环节。本教程将重点关注Android与服务端的交互,以及使用JSP进行数据展示。以下是对这些...
- **Web服务**:服务端通常通过RESTful API为Android客户端提供数据交互接口,如GET请求获取联系人列表,POST请求新增或更新联系人等。 - **后端框架**:常见的有Spring Boot、Django、Node.js等,选择合适的后端...
6. **性能优化**:客户端可能进行了缓存策略、异步加载、数据压缩等优化,服务端可能涉及数据库索引优化、减少HTTP请求数等。 7. **响应式设计**:为了适配不同设备和屏幕尺寸,客户端可能使用了Flexbox(Android)...
总结,基于Android的大学生家教APP设计与实现是一个综合性的项目,涵盖了Android客户端开发、服务端开发以及数据库设计等多个技术领域。通过这个项目,开发者不仅能提升自己的技术能力,还能理解到一款完整的移动...
3. 图片加载库:如 Glide 或 Picasso,用于优化图片的加载和显示,防止内存溢出。 4. JSON解析:除了SOAP,应用可能还使用JSON格式与服务器交互,需要解析JSON数据填充UI。 5. 网络状态检测:利用...