标签: android-progressbar

在按钮内创建进度条

问题

我想在这张图片中制作一个进度条:

这个图片

期望的行为是:

  • 当用户单击该按钮时,将出现深灰色进度条并开始以恒定速度递增.我希望能够确定完全填充需要多长时间(比如2秒).
  • 如果请求在进度条达到100%之前到达,则进度条应该直接进入100%(不在一个框架内,但它应该非常快速地增长,就像它在Windows文件浏览器中发生的那样,当它正在加载某些内容并完成时当进度条尚未结束时).
  • 如果请求在栏达到100%之前没有到达,则让它达到100%.如果在100%(即过去2秒)请求尚未到达,则会发生超时(我会显示一个小吃吧;不要担心这个,我知道该怎么做,这只是为了澄清).

到目前为止我发现了什么

我发现这篇文章可以说明我想要的东西.这种方法有什么问题吗?此外,该示例未显示如何自定义进度条(在我的情况下,我希望在带有弯角的视图顶部使用灰色).但我最想知道的是,该链接的方法是否合适.

我的猜测

我主要担心的是当请求到达时发生的"快速填充"但进度条尚未达到100%(我认为这将是大多数情况;请求不太可能达到100% ).考虑到链接中的内容,我在想,当请求到达时,该方法doSomeTasks应该在一个小间隔内返回进度条状态+ 1.因此,在示例中,如果它在55,它将返回56,57,58 ......直到100,并且返回将在它们之间具有间隔,例如0.5秒.这样,我我可以模拟进度条快速增长到100%.

非常感谢任何帮助,谢谢!

android android-progressbar

8
推荐指数
1
解决办法
3754
查看次数

带填充的Android进度条

我想让我的进度条看起来像这样:

在此输入图像描述

我不想使用图像,所以我试图用形状做这个:

<item android:id="@android:id/background">
    <shape>
        <corners android:radius="50dp" />

        <gradient
            android:angle="270"
            android:centerColor="#2a2723"
            android:centerY="0.75"
            android:endColor="#2a2723"
            android:startColor="#2a2723" />
    </shape>
</item>
<item android:id="@android:id/secondaryProgress">
    <clip>
        <shape>
            <corners android:radius="50dp" />

            <gradient
                android:angle="270"
                android:centerColor="#16e61c"
                android:centerY="0.75"
                android:endColor="#9dfd6e"
                android:startColor="#16e61c" />
        </shape>
    </clip>
</item>
<item android:id="@android:id/progress">
    <clip>
        <shape>
            <corners android:radius="50dp" />

            <gradient
                android:angle="270"
                android:endColor="#9dfd6e"
                android:startColor="#16e61c" />
        </shape>
    </clip>
</item>
Run Code Online (Sandbox Code Playgroud)

但是我不能为绿线设置填充(我试图在可能的地方设置它),而且我也不能做出这样的圆角(看起来corners android:radius不起作用).请帮我

android android-progressbar

7
推荐指数
3
解决办法
9454
查看次数

循环进度条

我想创建一个循环进度条,如下图所示

圆形进度条

我不知道创建此进度条的方法是什么.我不知道应该准备什么资产.

android android-assets android-animation android-progressbar

7
推荐指数
2
解决办法
1万
查看次数

使用progressBar上传HttpUrlConnection多部分文件

我想检查上传文件的进度HttpUrlConnection.我怎么能这样做?我曾尝试在写入数据时计算字节数,OutputStream但这是错误的,因为只有在我调用时才会发生真正的上传conn.getInputStream(),因此我需要以某种方式检查inputStream.这是我的代码:

public static void uploadMovie(final HashMap<String, String> dataSource, final OnLoadFinishedListener finishedListener, final ProgressListener progressListener) {
  if (finishedListener != null) {
    new Thread(new Runnable() {
       public void run() {
         try {

              String boundary = getMD5(dataSource.size()+String.valueOf(System.currentTimeMillis()));
              MultipartEntityBuilder multipartEntity = MultipartEntityBuilder.create();
              multipartEntity.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);    
              multipartEntity.setCharset(Charset.forName("UTF-8"));

              for (String key : dataSource.keySet()) {
                 if (key.equals(MoviesFragmentAdd.USERFILE)) {
                    FileBody  userFile = new FileBody(new File(dataSource.get(key)));
                    multipartEntity.addPart(key, userFile);
                    continue;
                 }
                 multipartEntity.addPart(key, new StringBody(dataSource.get(key),ContentType.APPLICATION_JSON));
              }

              HttpEntity entity = multipartEntity.build();
              HttpURLConnection conn = (HttpsURLConnection) new URL(URL_API + …
Run Code Online (Sandbox Code Playgroud)

upload android multipart httpurlconnection android-progressbar

7
推荐指数
1
解决办法
9337
查看次数

在ListView中使用时的Choppy ProgressBar性能

我最近遇到了一个问题,即行ProgressBar内使用的不确定动画ListView变得不稳定.简而言之,我有一个ListView每行包含一个ProgressBar.动画看起来很棒,直到我滚动; 从那以后,至少有一个ProgressBar会有一个不稳定的动画.

有谁知道如何解决这个问题?

http://imgur.com/EMoRGnJ

查看ListView行

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ProgressBar
        android:indeterminate="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

简单的自定义ArrayAdapter

public class MyAdapter extends ArrayAdapter {

    List list;

    public MyAdapter(Context context, List objects) {
        super(context, 0, objects);
        list = objects;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        if(convertView == null) {
            convertView = ((LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.list_row, parent, false);
        }

        return convertView;
    }
}
Run Code Online (Sandbox Code Playgroud)

示例Activity的OnCreate()方法

@Override
    protected void onCreate(Bundle savedInstanceState) …
Run Code Online (Sandbox Code Playgroud)

android listview android-progressbar

7
推荐指数
1
解决办法
618
查看次数

在android上设置不确定的水平进度条

样式确定的进度条很容易,有很多教程可以实现.这是我正在使用:

<ProgressBar
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="match_parent"
    android:layout_height="8dp"
    android:background="@drawable/progress_background"
    android:progressDrawable="@drawable/progress"
    android:id="@+id/progressBar" />
Run Code Online (Sandbox Code Playgroud)

抽奖progress_background.xml:

    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <solid android:color="@color/colorAccent" />
                <corners android:radius="4dp" />
            </shape>
        </clip>
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

它看起来像这样:

在此输入图像描述

但是当进展还没有时,我想使用不确定的进展.所以我尝试过:

<ProgressBar
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="match_parent"
        android:layout_height="8dp"
        android:background="@drawable/progress_background"
        android:progressDrawable="@drawable/progress"
        android:indeterminateTint="@color/colorAccent"
        android:indeterminateTintMode="src_in"
        android:indeterminate="true"
        android:id="@+id/progressBar" />
Run Code Online (Sandbox Code Playgroud)

但不确定的进展并没有延伸到高度:

在此输入图像描述

我尝试使用可绘制文件来设置它的样式,但它看起来像破坏的确定进度条(从0到100重新填充).

所需的不确定进度条应该看起来像普通的进度条,但高度为8dp,圆角.

android android-progressbar android-styles

7
推荐指数
1
解决办法
9959
查看次数

有api调用时如何在没有代码重复的情况下膨胀progressBar布局

我的应用程序中有这个流程:

声明端点:

public interface EndPoints {
    @GET(Constants.POPULAR)
    Call<AllData> getAllData(
            @Query("api_key") String apiKey
    );
}
Run Code Online (Sandbox Code Playgroud)

改造服务:

  private static EndPoints endPoints = retrofit.create(EndPoints.class);

    public static EndPoints getEndpoints() {
        return  endPoints ;
    }
Run Code Online (Sandbox Code Playgroud)

我在我的视图模型中调用它:

   private void getDataFromApi() {
    Call<AllData> call = RetrofitService.getEndPoints().getAllData(Constants.API_KEY);
    call.enqueue(new Callback<AllData>() {
        @Override
        public void onResponse(Call<AllData> call, Response<AllData> response) {

        }
            if (response.isSuccessful()) {
                _allData.setValue(response.body());
        }

        @Override
        public void onFailure(Call<AllData> call, Throwable t) {
        }
    });

}
Run Code Online (Sandbox Code Playgroud)

基础活动:

public abstract class BaseActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) …
Run Code Online (Sandbox Code Playgroud)

java android mvvm android-progressbar retrofit2

7
推荐指数
1
解决办法
569
查看次数

如何在android中使用水平“材料进度指示器”?

我使用“android.material.progressindicator”来在水平视图中显示进度,但我听不到我的 XML

<com.google.android.material.progressindicator.ProgressIndicator
                android:background="@color/grey"
                android:id="@+id/progressInd"
                style="@style/Widget.MaterialComponents.ProgressIndicator.Linear.Determinate"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:indeterminate="false"
                android:max="100"
                android:progress="30"
                android:progressDrawable="@drawable/bidding_progress" />
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

android android-progressbar material-design material-components material-components-android

7
推荐指数
1
解决办法
6301
查看次数

如何定义圆形进度条的渐变

我在布局中添加了一个进度条,如下所示,我还为其添加了颜色,并且效果很好。

 <ProgressBar
        android:id="@+id/progressBar"
        style="?android:attr/progressBarStyle"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:indeterminate="true"
        android:indeterminateTintMode="src_atop"
        android:indeterminateTint="@color/color"
        android:layout_gravity="center_vertical|center_horizontal"
        android:visibility="visible"
 />
Run Code Online (Sandbox Code Playgroud)

但我需要在上面添加渐变颜色。我在颜色文件夹中添加了渐变,如下所示。

<gradient android:type="linear"
    android:angle="0"
    android:startColor="#dc0336"
    android:endColor="#ff7f00"
    xmlns:android="http://schemas.android.com/apk/res/android" />
Run Code Online (Sandbox Code Playgroud)

然后我将这个颜色分配给Progressbar

 android:indeterminateTint="@color/gradientColor"
Run Code Online (Sandbox Code Playgroud)

但这不起作用,我需要知道一种方法来添加渐变progressBar

android android-layout android-progressbar android-constraintlayout

7
推荐指数
2
解决办法
5708
查看次数

未应用更改 CircularProgressIndicator 宽度或高度

我想使用CircularProgressIndicator材质库中的宽度自定义尺寸,但是当我为视图设置任何宽度或高度时,只是视图本身发生变化而不是其中的圆圈。我想要实现的是填充图像视图的进度,如下图所示

在此输入图像描述

这是我的代码

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<com.google.android.material.imageview.ShapeableImageView
        android:id="@+id/circleBackground"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_margin="16dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintDimensionRatio="H,1:1"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintWidth_percent="0.5"
        app:shapeAppearanceOverlay="@style/circleImageView"
        tools:src="@tools:sample/avatars" />

    <com.google.android.material.progressindicator.CircularProgressIndicator
        android:id="@+id/progressBar"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:max="100"
        android:progress="50"
        app:indicatorColor="@color/green_true"
        app:indicatorDirectionCircular="clockwise"
        app:layout_constraintBottom_toBottomOf="@id/circleBackground"
        app:layout_constraintLeft_toLeftOf="@id/circleBackground"
        app:layout_constraintRight_toRightOf="@id/circleBackground"
        app:layout_constraintTop_toTopOf="@id/circleBackground"
        app:trackColor="#50ffffff"
        app:trackCornerRadius="90dp" />

</androidx.constraintlayout.widget.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)

android android-progressbar material-components-android

7
推荐指数
1
解决办法
2783
查看次数