導航:首頁 > 文件教程 > android上傳文件進度條

android上傳文件進度條

發布時間:2023-02-13 03:48:49

Ⅰ android 怎麼自定義繪制如下圖中這種進度條

下面是安卓學習手冊中實現各種進度條的截圖:

要想看各種進度條的實現代碼和文檔,直接去360手機助手中下載安卓學習手冊,例子文檔隨便看。

1、說明

在某些操作的進度中的可視指示器,為用戶呈現操作的進度,還它有一個次要的進度條,用來顯示中間進度,如在流媒體播放的緩沖區的進度。一個進度條也可不確定其進度。在不確定模式下,進度條顯示循環動畫。這種模式常用於應用程序使用任務的長度是未知的。

2、XML重要屬性

android:progressBarStyle:默認進度條樣式

android:progressBarStyleHorizontal:水平樣式

3 重要方法

getMax():返回這個進度條的范圍的上限

getProgress():返回進度

getSecondaryProgress():返回次要進度

incrementProgressBy(int diff):指定增加的進度

isIndeterminate():指示進度條是否在不確定模式下

setIndeterminate(boolean indeterminate):設置不確定模式下

setVisibility(int v):設置該進度條是否可視

4 重要事件

onSizeChanged(int w, int h, int oldw, int oldh):當進度值改變時引發此事件

5進度條的樣式

Widget.ProgressBar.Horizontal長形進度

Androidxml 布局:

<ProgressBar

android:id="@+id/progress_bar"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

style="@android:style/Widget.ProgressBar.Horizontal "

/>

源碼:

private ProgressBar mProgress;

private int mProgressStatus=0;

private Handler mHandler=newHandler();

@Override

protected void onCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mProgress=(ProgressBar)findViewById(R.id.progress_bar);

new Thread(new Runnable(){

@Override

public void run(){

while(mProgressStatus<100){

mProgressStatus=doWork();

mHandler.post(new Runnable(){

@Override

public void run(){

mProgress.setProgress(mProgressStatus);

}

});

}

}

}).start();

}

效果圖:

帶第二進度的進度條

xml配置如下:

<ProgressBar

android:id="@+id/progress_bar_with_second"

style="@android:style/Widget.ProgressBar.Horizontal"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:progress="40"

android:secondaryProgress="70"

android:paddingTop="20dp"

android:paddingBottom="20dp"/>

這里我們設置了初始的進度為40,android:progress的值在mini和max之間即mini<=progressvalue<=max

設置了第二進度條的進度值為70,該值也在mini和max之間。

效果如下:

不確定模式進度條

xml配置文件

<ProgressBar

android:id="@+id/progress_bar_indeterminate"

style="@android:style/Widget.ProgressBar.Horizontal"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:indeterminate="true"

android:indeterminateBehavior="cycle"

android:paddingBottom="20dp"

android:paddingTop="20dp"

android:progress="40" />

這里通過android:indeterminate="true"設置了當前為無模式進度條

效果如圖:

普通圓形進度:Widget.ProgressBar.Inverse

<ProgressBar

android:id="@+id/progress_bar1"

style="@android:style/Widget.ProgressBar.Inverse"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:progress="50"

android:background="#ff00ff"

android:paddingTop="4dp" />

通過android:backgroup設置了背景色

Ⅱ android 實現Service上傳並在通知欄顯示進度條

手上項目需要實現選擇多個視頻後在上傳騰訊雲,由於視頻較大大,所以選擇Service來進行上傳任務,配合Notification顯示進度。

打開server直接發送一個Notification並拿到RemoteViews ;
這里要兼容下8.0設置好渠道id;
下面開始上傳

最後效果如圖,layout可以自己定義
如果無法顯示通知那應該安裝時默認設置了關閉通知,需要進入通知管理打開

Ⅲ android app上傳文件速度太慢怎麼處理

一、釋放XP自帶保留20%的帶寬,讓你的網速更快! 1、運行組策略編輯器程序(gpedit.msc)。在「『本地計算機』策略」中,逐級「計算機配置」→「管理模板」→「網路(互聯網)」→「QoS數據包調度程序」分支。在屏幕右邊會出現「QoS數據包調度程序」策略。接著單擊右邊子項目的「限制可保留帶寬」。這時,左邊會顯示「限制可保留帶寬」的清楚描述。從這里我們可了解到「限制可保留帶寬」的有些基本情形。了解之後我們就可以對「限制可保留帶寬」進行設置了。單擊「限制可保留帶寬」下「顯示」旁邊的「屬性」(或選取子項目「限制可保留帶寬」,再點擊右鍵→「屬性」也可),出現「限制可保留帶寬」對話框,先點擊「說明」,再進一步了解「限制可保留帶寬」確定系統(System)可保留的連接帶寬的百分比情形。 之後我們就可以對另外20%帶寬進設置了。點擊「設置」。「設置」為我們提供了三個選取(未配置、已啟用、已禁用),選取「已啟用」,接著再將帶寬限制旁邊的%設置為0%即可,之後按確定退出。 2、單擊「開始」→「連接到」→「顯示全部連接」。 選中你所建立的連接,用滑鼠右鍵單擊屬性,在出現的連接屬性中單擊網路(互聯網),在顯示的網路(互聯網)對話框中,檢查「此連接用下列項目」中「QoS數據包調度程序」是不是已打了勾,沒問題就按確定退出。 3、最後重新開啟系統(System)便完成對另外20%的頻寬利用了 二、清理 ①清空Internet臨時文件夾 他人查看「Internet臨時文件夾」下的圖、Flash等文件便能大體知道你曾到過的網站。要清理它們,可依次單擊IE菜單欄中的「工具」→「Internet選項」,打開(OPEN)「Internet選項」對話框,在「常規」標簽中點擊「刪掉文件」按鈕,在彈出的「刪掉文件」窗口中勾選「刪掉全部離線內容」,最後點擊「確定」。 三、關掉上網設備貓和路由,十多分鍾後再開機 四、還有網路(互聯網)網站問題

Ⅳ android progressbar第二條進度條有什麼用

可以記錄單文件的進度啊
比如下載更新,第一條是總進度,第二條是裡面某些小文件的進度

Ⅳ Android DataOutputStream 上傳文件進度無法監聽

代碼如下:
[java] view plain print?
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Date;

Ⅵ 上傳文件與設置進度條

1、引入bootstrap.css和jquery.js;
2、點擊按鈕後獲取文件列表,添加到FormData,調用open函數指定類型與URL地址,在發起請求send();
3、監聽onreadystatechange事件,當伺服器回應後,把傳回來的數據轉換成JSON字元串,修改img的URL地址,讓圖片文件顯示在頁面中;
4、創建xhr對象開啟監聽文件上傳進度,e.lengthComputable是true則計算進度條百分比,把結果給進度條;
5、進度條完成後,修改顏色,移除類添加類

HTML

JS

Ⅶ 怎樣實現在android實現帶進度條的上傳效果

實現在android實現帶進度條的上傳效果效果如圖:


用到以下兩個類就可實現帶進度條的文件上傳:


1、CustomMultiPartEntity extends MultipartEntity,


2、HttpMultipartPost extends AsyncTask


代碼如下:


import java.io.FilterOutputStream;


import java.io.IOException;


import java.io.OutputStream;


import java.nio.charset.Charset;


import org.apache.http.entity.mime.HttpMultipartMode;


import org.apache.http.entity.mime.MultipartEntity;



public class CustomMultipartEntity extends MultipartEntity {


private final ProgressListener listener;


public CustomMultipartEntity(final ProgressListener listener) {


super();


this.listener = listener;


}


public CustomMultipartEntity(final HttpMultipartMode mode, final ProgressListener listener) {


super(mode);


this.listener = listener;


}


public CustomMultipartEntity(HttpMultipartMode mode, final String boundary,


final Charset charset, final ProgressListener listener) {


super(mode, boundary, charset);


this.listener = listener;


}


@Override


public void writeTo(final OutputStream outstream) throws IOException {


super.writeTo(new CountingOutputStream(outstream, this.listener));


}


public static interface ProgressListener {


void transferred(long num);


}



public static class CountingOutputStream extends FilterOutputStream {


private final ProgressListener listener;


private long transferred;


public CountingOutputStream(final OutputStream out, final ProgressListener listener) {


super(out);


this.listener = listener;


this.transferred = 0;


}


public void write(byte[] b, int off, int len) throws IOException {


out.write(b, off, len);


this.transferred += len;


this.listener.transferred(this.transferred);


}


public void write(int b) throws IOException {


out.write(b);


this.transferred++;


this.listener.transferred(this.transferred);


}


}


}


該類計算寫入的位元組數,我們需要在實現ProgressListener中的trasnfered()方法,更行進度條



public class HttpMultipartPost extends AsyncTask<HttpResponse, Integer, TypeUploadImage> {



ProgressDialogpd;



longtotalSize;



@Override


protectedvoidonPreExecute(){


pd= newProgressDialog(this);


pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);


pd.setMessage("Uploading Picture...");


pd.setCancelable(false);


pd.show();


}



@Override


(HttpResponse... arg0) {


HttpClienthttpClient = newDefaultHttpClient();


HttpContexthttpContext = newBasicHttpContext();


HttpPosthttpPost = newHttpPost("http://herpderp.com/UploadImage.php");



try{


= newCustomMultipartEntity(


newProgressListener() {



@Override


public void transferred(longnum){


publishProgress((int) ((num / (float) totalSize) * 100));


}


});



// We use FileBody to transfer an image


multipartContent.addPart("uploaded_file", newFileBody(


newFile(m_userSelectedImagePath)));


totalSize= multipartContent.getContentLength();



// Send it


httpPost.setEntity(multipartContent);


HttpResponseresponse = httpClient.execute(httpPost, httpContext);


String serverResponse = EntityUtils.toString(response.getEntity());



ResponseFactoryrp = newResponseFactory(serverResponse);


return(TypeImage) rp.getData();


}



catch(Exception e) {


System.out.println(e);


}


returnnull;


}



@Override


protectedvoidonProgressUpdate(Integer... progress){


pd.setProgress((int) (progress[0]));


}



@Override


protectedvoidonPostExecute(TypeUploadImageui) {


pd.dismiss();


}


}

在 transferred()函數中調用publishProgress((int) ((num / (float) totalSize) * 100));


在onProgressUpdate()實現上傳進度的更新操作

Ⅷ android 文件上傳時 怎麼算文件上傳速度

計算的下載速度復,舉例說明制一下吧。
例如每隔N秒就改變當前下載速度數字的,N秒前的下載進度百分比m%,
N秒後的下載進度百分比n%,當前下載問題的總大小Size【換算成多少kb】
(m%-n%)*Size/N就是 這段時間的下載或上傳速度了。
注意:記得增加判斷一些邊界問題。

Ⅸ Android開發怎麼自定義繪制如下圖中這種進度條急需!在線等!

一)變換前背景

先來看看progressbar的屬性:
1. <ProgressBar
2. android:id="@+id/progressBar"
3. style="?android:attr/progressBarStyleHorizontal"
4. android:layout_width="match_parent"
5. android:layout_height="wrap_content"
6. android:layout_margin="5dip"
7. android:layout_toRightOf="@+id/progressBarV"
8. android:indeterminate="false"
9. android:padding="2dip"
10. android:progress="50" />
根據style="?android:attr/progressBarStyleHorizontal",我們找到源碼中的style.xml
1. <style name="Widget.ProgressBar.Horizontal">
2. <item name="android:indeterminateOnly">false</item>
3. <item name="android:progressDrawable">@android:drawable/progress_horizontal</item>
4. <item name="android:indeterminateDrawable">@android:drawable/progress_indeterminate_horizontal</item>
5. <item name="android:minHeight">20dip</item>
6. <item name="android:maxHeight">20dip</item>
7. </style>
看到
<item name="android:progressDrawable">@android:drawable/progress_horizontal</item>
木有,繼續發掘源碼,找到drawable下面的progress_horizontal.xml,這就是我們今天的主角了:
1. <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
2.
3. <item android:id="@android:id/background">
4. <shape>
5. <corners android:radius="5dip" />
6. <gradient
7. android:startColor="#ff9d9e9d"
8. android:centerColor="#ff5a5d5a"
9. android:centerY="0.75"
10. android:endColor="#ff747674"
11. android:angle="270"
12. />
13. </shape>
14. </item>
15.
16. <item android:id="@android:id/secondaryProgress">
17. <clip>
18. <shape>
19. <corners android:radius="5dip" />
20. <gradient
21. android:startColor="#80ffd300"
22. android:centerColor="#80ffb600"
23. android:centerY="0.75"
24. android:endColor="#a0ffcb00"
25. android:angle="270"
26. />
27. </shape>
28. </clip>
29. </item>
30.
31. <item android:id="@android:id/progress">
32. <clip>
33. <shape>
34. <corners android:radius="5dip" />
35. <gradient
36. android:startColor="#ffffd300"
37. android:centerColor="#ffffb600"
38. android:centerY="0.75"
39. android:endColor="#ffffcb00"
40. android:angle="270"
41. />
42. </shape>
43. </clip>
44. </item>
45.
46. </layer-list>
看到android:id="@android:id/progress"木有,看到android:id="@android:id/secondaryProgress"木有
把這個文件復制到自己工程下的drawable,就可以隨心所欲的修改shape的屬性,漸變,圓角等等
那麼怎麼放一個圖片進去呢,ok,新建progress_horizontal1.xml:
1. <?xml version="1.0" encoding="utf-8"?>
2. <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
3.
4. <item android:id="@android:id/progress" android:drawable="@drawable/progressbar" />
5.
6. </layer-list>
在android:drawable中指定你處理好的圖片
然後回到布局中
1. <ProgressBar
2. android:id="@+id/progressBar1"
3. android:layout_width="match_parent"
4. android:layout_height="wrap_content"
5. android:layout_below="@+id/progressBar"
6. android:layout_margin="5dip"
7. android:layout_toRightOf="@+id/progressBarV"
8. android:background="@drawable/progress_bg"
9. android:indeterminate="false"
10. android:indeterminateOnly="false"
11. android:maxHeight="20dip"
12. android:minHeight="20dip"
13. android:padding="2dip"
14. android:progress="50"
15. android:progressDrawable="@drawable/progress_horizontal1" />
android:background="@drawable/progress_bg"指定背景
android:progressDrawable="@drawable/progress_horizontal1"前景使用上面的progress_horizontal1

要是還不行

你來我們群里說吧

這里是開發者互相學習交流的 有大神

讓他們給你解釋你的疑問 號 碼look at my n a m e.....

Ⅹ Android中如何實現帶進度的文件上傳Http可以實現嗎

可使用android自帶的httpclient框架實現,附件中已經現成的示例代碼,帶上傳進度。


1. GET 方式傳遞參數

//先將參數放入List,再對參數進行URL編碼

List<BasicNameValuePair> params = new LinkedList<BasicNameValuePair>();

params.add(new BasicNameValuePair("param1", "數據")); //增加參數1

params.add(new BasicNameValuePair("param2", "value2"));//增加參數2

String param = URLEncodedUtils.format(params, "UTF-8");//對參數編碼

String baseUrl = "伺服器介面完整URL";

HttpGet getMethod = new HttpGet(baseUrl + "?" + param);//將URL與參數拼接

HttpClient httpClient = new DefaultHttpClient();

try {

HttpResponse response = httpClient.execute(getMethod); //發起GET請求

Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //獲取響應碼

Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8"));//獲取伺服器響應內容

} catch (ClientProtocolException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}


2.POST方式 方式傳遞參數

//和GET方式一樣,先將參數放入List

params = new LinkedList<BasicNameValuePair>();

params.add(new BasicNameValuePair("param1", "Post方法"));//增加參數1

params.add(new BasicNameValuePair("param2", "第二個參數"));//增加參數2

try {

HttpPost postMethod = new HttpPost(baseUrl);//創建一個post請求

postMethod.setEntity(new UrlEncodedFormEntity(params, "utf-8")); //將參數填入POST Entity中

HttpResponse response = httpClient.execute(postMethod); //執行POST方法

Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //獲取響應碼

Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8")); //獲取響應內容

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

} catch (ClientProtocolException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}


閱讀全文

與android上傳文件進度條相關的資料

熱點內容
php循環插入資料庫 瀏覽:492
文件歸類整理軟體 瀏覽:557
ps形狀放在哪個文件夾 瀏覽:263
南京網路資料庫怎麼找 瀏覽:963
電腦刪掉用戶帳號和數據怎麼恢復 瀏覽:344
得物app如何用微信支付 瀏覽:184
網路瀏覽加速器 瀏覽:788
蘋果7好端端開不了機 瀏覽:42
javadouble精度損失 瀏覽:308
手機截圖女孩圖標是什麼app 瀏覽:168
有一行數據為什麼不排序 瀏覽:535
直接調用js函數 瀏覽:835
天貓2045是什麼網站 瀏覽:189
提取文件夾里所有word文件 瀏覽:288
隔空投送一次能傳送多少個文件 瀏覽:347
拇指玩gpk文件安裝器 瀏覽:475
肖戰為那英打call數據是多少 瀏覽:699
網路優化的發展 瀏覽:719
3dmax打開高版本 瀏覽:177
文件字體一般多少 瀏覽:551

友情鏈接