导航:首页 > 文件教程 > 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上传文件进度条相关的资料

热点内容
java高低字节 浏览:105
win10安全模式也死机 浏览:159
最简单的数据库开发软件 浏览:718
迅雷下载网络断开 浏览:792
考勤系统数据库在哪个文件夹 浏览:134
creo30绘图配置文件设置 浏览:624
苹果ID被锁要交600元交不交 浏览:29
实例化module配置文件失败 浏览:872
网站源码是什么东西 浏览:90
怎样打开桌面隐藏文件 浏览:904
拯救者的颜色配置文件 浏览:860
微信转发朋友圈送礼品 浏览:905
新电脑装win10教程 浏览:130
linux文件执行授权 浏览:618
微信文件如何删除重新打开 浏览:897
删了他微信他又来加 浏览:283
苹果备忘录文件夹备份 浏览:233
手机查看db文件 浏览:248
银卡app密码怎么改 浏览:995
winxp无线网络显示红叉 浏览:71

友情链接