当前位置:首页 » 文件传输 » xutils上传图片压缩
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

xutils上传图片压缩

发布时间: 2022-02-10 08:48:36

❶ xutils框架 图片上传服务器怎么做

如果图片少,在apache配置一下就可以了。
如果图片多(十万以上),那么注意一下目录结构的存放也就可以了。
如果再多,那么就要做文件存放的系统。上传图片到文档系统,文档以hash算法确定目录进行存放。并返回一个图片id号。文档系统提供tag,利用id和tag可以转换为真实路径和文件名,就可以直接访问了。
天互数据 杜超,为您解答

❷ Android 使用OkhttpUtils上传图片

IMAGE_FILE_NAME这个确定是文件路径么?
那个其他我看不出来,我上传图片用的都是Xutils,你可以搜搜试试。

❸ xutils怎么上传byte数组

网上说它源于Afinal框架,我看过Afinal的源码,貌似也是基于HttpClient封装的,还是没办法排除HttpClient的隐患
我没能找到xUtils的源码,所以不能肯定xUtils是不是也是基于HttpClient封装的,所以想再问你一下,如果是的话,我还是找找别的办法吧!

❹ xutils3和xutils3什么区别

区别如下:

1、数据库方面,两者注解映射不同

xUtils2下 @Table(name="stu",execAfterTableCreated ="" ),而xUtils3下直接是代替了onCreated。

2、数据库创建和查询有改动,但基本还是相同

xutils2中db.findFirst(Selector.from(Parent.class)。where.....而xUtils3中则是db.selector(Parent.class).where(....).findFirst();但是里面基本的条件例如where,whereBuilder等参数还是没变的。

3、网络操作方面不同

xUtils3是直接x.image().bind..或者x.http().post()等取代了http.send(method,url,callback)。

4、视图方面不同

xutils3中@Event()代替了@onClick(),而且下面的private代替了public。

❺ 安卓开发Xutils.Bitmap怎么实现的三级缓存

网络缓存
网络拉取图片严格来讲不能称之为缓存,实质上就是下载url对应的图片,我们这里姑且把它看作是缓存的一种。仿照BitmapUtil中的display方法,我自己定制的CustomBitmapUtils也定义这个方法,根据传入的url,将图片设置到ivPic控件上。

[java] view plain
public void display(ImageView ivPic, String url) {

}
定义网络缓存的工具类,在访问网络的时候,我使用了AsyncTask来实现,在AsyncTask的doInBackGround方法里下载图片,然后将 图片设置给ivPic控件,AsyncTask有三个泛型,其中第一个泛型是执行异步任务的时候,通过execute传过来的参数,第二个泛型是更新的进度,第三个泛型是异步任务执行完成之后,返回来的结果,我们这里返回一个Bitmap。具体的下载实现代码如下:

[java] view plain
<pre name="code" class="java">/**
* 网络缓存的工具类
*
* @author ZHY
*
*/
public class NetCacheUtils {

private LocalCacheUtils localCacheUtils;
private MemoryCacheUtils memoryCacheUtils;

public NetCacheUtils() {
localCacheUtils = new LocalCacheUtils();
memoryCacheUtils = new MemoryCacheUtils();
}

/**
* 从网络下载图片
*
* @param ivPic
* @param url
*/
public void getBitmapFromNet(ImageView ivPic, String url) {
// 访问网络的操作一定要在子线程中进行,采用异步任务实现
MyAsyncTask task = new MyAsyncTask();
task.execute(ivPic, url);

}

/**
* 第一个泛型--异步任务执行的时候,通过execute传过来的参数; 第二个泛型--更新进度; 第三个泛型--异步任务执行以后返回的结果
*
* @author ZHY
*
*/
private class MyAsyncTask extends AsyncTask<Object, Void, Bitmap> {

private ImageView ivPic;
private String url;

// 耗时任务执行之前 --主线程
@Override
protected void onPreExecute() {
super.onPreExecute();
}

// 后台执行的任务
@Override
protected Bitmap doInBackground(Object... params) {
// 执行异步任务的时候,将URL传过来
ivPic = (ImageView) params[0];
url = (String) params[1];
Bitmap bitmap = downloadBitmap(url);
// 为了保证ImageView控件和URL一一对应,给ImageView设定一个标记
ivPic.setTag(url);// 关联ivPic和URL

return bitmap;
}

// 更新进度 --主线程
@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}

// 耗时任务执行之后--主线程
@Override
protected void onPostExecute(Bitmap result) {
String mCurrentUrl = (String) ivPic.getTag();
if (url.equals(mCurrentUrl)) {
ivPic.setImageBitmap(result);
System.out.println("从网络获取图片");
// 从网络加载完之后,将图片保存到本地SD卡一份,保存到内存中一份
localCacheUtils.setBitmap2Local(url, result);
// 从网络加载完之后,将图片保存到本地SD卡一份,保存到内存中一份
memoryCacheUtils.setBitmap2Memory(url, result);

}
}
}

/**
* 下载网络图片
*
* @param url
* @return
*/
private Bitmap downloadBitmap(String url) {
HttpURLConnection conn = null;
try {
URL mURL = new URL(url);
// 打开HttpURLConnection连接
conn = (HttpURLConnection) mURL.openConnection();
// 设置参数
conn.setConnectTimeout(5000);
conn.setReadTimeout(5000);
conn.setRequestMethod("GET");
// 开启连接
conn.connect();

// 获得响应码
int code = conn.getResponseCode();
if (code == 200) {
// 相应成功,获得网络返回来的输入流
InputStream is = conn.getInputStream();

// 图片的输入流获取成功之后,设置图片的压缩参数,将图片进行压缩
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 2;// 将图片的宽高都压缩为原来的一半,在开发中此参数需要根据图片展示的大小来确定,否则可能展示的不正常
options.inPreferredConfig = Bitmap.Config.RGB_565;// 这个压缩的最小

// Bitmap bitmap = BitmapFactory.decodeStream(is);
Bitmap bitmap = BitmapFactory.decodeStream(is, null, options);// 经过压缩的图片

return bitmap;
}

} catch (Exception e) {
e.printStackTrace();
} finally {
// 断开连接
conn.disconnect();
}

return null;
}
}

❻ Android图片批量上传的功能。(图片比较大)

Android中上传图片或者下载图片,使用最多的是xUtils和imageloader、glide,选用这两种的哪一种框架都行,因为是批量和图片大容易造成界面卡以及上传速度慢,对图片操作不当就容易造成OOM异常,一般对于批量上传大图片都需要对图片也处理,然后在上传第一步需要对图片进行比例压缩之后再进行质量压缩,处理之后的图片比之前的图片会小很多,再加上框架的上传处理,会有很好的效果,希望对你有所帮助

❼ xutils请求服务器怎么设置请求的时长

Xutils的简单总结

## xUtils简介
* xUtils 包含了很多实用的android工具。
* xUtils 最初源于Afinal框架,进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持,拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响。
* xUitls最低兼容android 2.2 (api level 8)
## 目前xUtils主要有四大模块:
* DbUtils模块:
> * android中的orm框架,一行代码就可以进行增删改查;
> * 支持事务,默认关闭;
> * 可通过注解自定义表名,列名,外键,唯一性约束,NOT NULL约束,CHECK约束等(需要混淆的时候请注解表名和列名);
> * 支持绑定外键,保存实体时外键关联实体自动保存或更新;
> * 自动加载外键关联实体,支持延时加载;
> * 支持链式表达查询,更直观的查询语义,参考下面的介绍或sample中的例子。
* ViewUtils模块:
> * android中的ioc框架,完全注解方式就可以进行UI,资源和事件绑定;
> * 新的事件绑定方式,使用混淆工具混淆后仍可正常工作;
> * 目前支持常用的20种事件绑定,参见ViewCommonEventListener类和包com.lidroid.xutils.view.annotation.event。
* HttpUtils模块:
> * 支持同步,异步方式的请求;
> * 支持大文件上传,上传大文件不会oom;
> * 支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD,OPTIONS,TRACE,CONNECT请求;
> * 下载支持301/302重定向,支持设置是否根据Content-Disposition重命名下载的文件;
> * 返回文本内容的请求(默认只启用了GET请求)支持缓存,可设置默认过期时间和针对当前请求的过期时间。
* BitmapUtils模块:
> * 加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象;
> * 支持加载网络图片和本地图片;
> * 内存管理使用lru算法,更好的管理bitmap内存;
> * 可配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等...

❽ 如何使用xutils3进行同步网络请求

xUtils简介
xUtils 包含了很多实用的android工具。

xUtils 支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响...

xUitls 最低兼容android 2.2 (api level 8)
今天给大家带来XUtils3的基本介绍,本文章的案例都是基于XUtils3的API语法进行的演示。相信大家对这个框架也都了解过,

❾ xutils2缓存多张图片怎么处理

图片缓存的一般处理是:
1.建立一个图片缓存池,用于存放图片对应的bitmap对象
2.在显示的时候,比如listview对应适配器的getView方法里进行加载图片的工作, 先从缓存池通过url的key值取,如果取到图片了直接显示,
如果获取不到再建立异步线程去下载图片(下载好后同时保存至图片缓存池并显示)

但是缓存池不能无限大啊~不然就会异常了,所以通常我们要对缓存池进行一定控制
需要有两个特性:
总大小有个限制,不然里面存放无限多的图片时会内存溢出OOM异常
当大小达到上限后,再添加图片时,需要线程池能够智能化的回收移除池内一部分图片,这样才能保证新图片的显示保存

❿ xUtils怎么post请求上传json数据

//设置传输参数。
RequestParams params = new RequestParams("UTF-8");
try {
params.setBodyEntity(new StringEntity(gson.toJson(要转成json的对象),"UTF-8"));
params.setContentType("application/json");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}

httpUtils.send(HttpMethod.POST, url,params,new RequestCallBack<String>() {
@Override
public void onFailure(HttpException arg0, String arg1) {
return;
}
@Override
public void onSuccess(ResponseInfo<String> responseInfo) {

if(responseInfo.statusCode == 200){
Log.i("MyLog", "发送成功");
}
}
});