當前位置:首頁 » 文件傳輸 » 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", "發送成功");
}
}
});