在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中显示图片。
相关推荐
掌握基于HttpClient、JSON数据...掌握将服务器响应装换为JSON对象或数组、通过Android客户端加载服务器响应; 开发java web project作为服务端; 开发Android客户端; 采用HttpClient的方式在服务端和客户端进行通信;
1.2.4 Android移动Web项目开发的三种解决方案:Native, Web和Hybrid优缺陷分析 4 1.2.5国内外应用现状 6 1.2.6 研究现状总结 7 1.3研究目标与内容 7 1.3.1多窗口浏览器模式的实现机制 7 1.3.2跨域交互即缓存处理方法...
2.3.2 Web服务端技术论证 6 2.3.3 数据库论证 7 3 系统总体设计 8 3.1架构设计 8 3.2 系统功能设计 8 3.2.1手机客户端功能设计: 10 3.2.2 Web服务端功能设计: 11 3.3 数据库设计 13 3.3.1 系统E-R图 13 3.3.2 ...
android服务端动态加载类。 在目前的软硬件环境下,Native App与Web App在用户体验上有着明显的优势,但在实际项目中有些会因为业务的频繁变更而频繁的升级客户端,造成较差的用户体验,而这也恰恰是Web App的优势...
41、AIDL Service android中的跨进程调用 客户端,服务端见AidlService 42、BroadcastReceiver 接收广播消息 43、非UI线程中不能操作UI线程中的View测试 44、ImageSwitcher animation gesture实现可以滑动的跑马灯...
41、AIDL Service android中的跨进程调用 客户端,服务端见AidlService 42、BroadcastReceiver 接收广播消息 43、非UI线程中不能操作UI线程中的View测试 44、ImageSwitcher animation gesture实现可以滑动的跑马灯...
8.6.1 WebView加载web页面 8.6.2 WebView中对JavaScript的支持 8.7 Gallery (画廊) 8.8 SlidingDrawer(滑动抽屉) 8.9 Dialog(对话框) 8.9.1 AlertDialog警告框 8.9.2 ProgressDialog进度框 8.9.3 ...
Web文件夹为服务端源码 开发环境 Android Studio 2.4 第六次预览版 IDEA 2018.3.2版本 JDK 1.8 compileSdkVersion 25 buildToolsVersion "25.0.2" classpath 'com.android.tools.build:gradle:2.3.2' 个推及阿里云...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
Tcp服务端与客户端的JAVA实例源代码 2个目标文件 摘要:Java源码,文件操作,TCP,服务器 Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...
Highcharts 是一个用纯 JavaScript 编写的一个图表库, 能够很简单便捷的在 Web 网站或是 Web 应用程序添加有交互性的图表,并且免费提供给个人学习、个人网站和非商业用途使用。 Highcharts 支持的图表类型有直线...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...