标签: android-progressbar

Android - 如何在不丢失动画的情况下更改水平进度条颜色

首先,这不是 "如何改变进度条颜色"的问题的重复,它确实解决了我的问题,但它产生了另一个问题.

所以,我有一个水平进度条,我一直在编写/更新进度条一个,即将进度设置为一个,然后设置为两个,(最多100个)来模拟%完成,如果我不改变颜色它会很好用.但是,正如您所知,在某些手机上,进度条的默认资源颜色为绿色,有些为橙色,我希望所有设备上的颜色为绿色,因此在进度条属性中,我设置progressDrawable(由大多数设置建议) Stackoverflow上的答案)到以下xml文件

 <?xml version="1.0" encoding="utf-8"?>
 <shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
 <corners android:radius="5dip" />
 <gradient
  android:startColor="#4CC417"
  android:centerColor="#4CC417"
  android:centerY="0.75"
  android:endColor="#4CC417"
  android:angle="270"
/>
</shape>
Run Code Online (Sandbox Code Playgroud)

如果我这样做,进度条现在只显示整个进度(即最终百分比,100),你看不到动画从0到任何百分比.

  1. 有没有办法只更改进度条的默认颜色,仍然有默认动画?

  2. 如果不可能,这是否意味着我必须做自己的动画?如果是这样,有人可以给我一个关于如何使用我自己的动画来模仿进度条的片段吗?

animation android android-progressbar progress-bar

6
推荐指数
1
解决办法
4037
查看次数

findViewById(android.R.id.progress)返回null

Android开发人员参考列出了可用的内置View资源中的R.id.progress.

然而,当我发布(在我的活动类中)声明时:

View pv = getWindow().findViewById(android.R.id.progress);
Run Code Online (Sandbox Code Playgroud)

它返回null.

即使我将它与ProgressBar类一起使用它也会返回null :

ProgressBar pv = (ProgressBar) getWindow().findViewById(android.R.id.progress);
Run Code Online (Sandbox Code Playgroud)

即使没有getWindow(),它也会返回null :

ProgressBar pv = (ProgressBar) findViewById(android.R.id.progress);
Run Code Online (Sandbox Code Playgroud)

知道为什么吗?

为了确保我没有产生幻觉,我按照@ Geobits的建议从头开始创建了一个新项目,其中包含@ArunGeorge推荐的博客文章中列出的确切代码:

package com.droidworks;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.widget.ProgressBar;

public class ProgressBarExampleActivity extends Activity {
  private ProgressBar mProgress;
  private MyThread mBgThread;
  private final Handler mHandler = new Handler();

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    mProgress = (ProgressBar) findViewById(android.R.id.progress);

    mBgThread = (MyThread) …
Run Code Online (Sandbox Code Playgroud)

android android-titlebar android-progressbar android-resources

6
推荐指数
1
解决办法
2607
查看次数

在列表视图中更新进度条

我有一个场景,在我的聊天应用程序中我想发送照片,照片发送需要时间.我附上了一个进度条(水平),以显示在我的应用程序中发送照片的进度.但我无法更新进度条,因为它是自定义列表视图的项目.

这是我的asynchtask设置进度条的进度,但我无法得到它.

 class SendPhotoToFriend extends AsyncTask<String, String, String>{

        String receiver,path = "";

        public SendPhotoToFriend(String path,String receiver) {
            // TODO Auto-generated constructor stub

            this.path = path;
            this.receiver = receiver;

        }


        @Override
        protected String doInBackground(String... arg0) {
            // TODO Auto-generated method stub

            ServiceDiscoveryManager sdm = ServiceDiscoveryManager
            .getInstanceFor(connection);

            if (sdm == null)
                sdm = new ServiceDiscoveryManager(connection);

            sdm.addFeature("http://jabber.org/protocol/disco#info");
            sdm.addFeature("jabber:iq:privacy");

            // Create the file transfer manager
            FileTransferManager manager = new FileTransferManager(
                    connection);
            FileTransferNegotiator.setServiceEnabled(connection, true);

            // Create the outgoing file transfer
            OutgoingFileTransfer transfer = manager
            .createOutgoingFileTransfer(receiver …
Run Code Online (Sandbox Code Playgroud)

android android-progressbar android-asynctask

6
推荐指数
1
解决办法
4885
查看次数

如何在Android中显示进度条中的下载进度?

我正在使用.net网络服务,我可以在SD卡中下载文件,但我想在特定文件开始下载和完成时显示进度条,然后我想显示视图和取消等选项.

点击事件类:

public void onItemClick(AdapterView<?> parent, View v, int position, long id)
{
    LazyAdapter ca = (LazyAdapter)parent.getAdapter();
    FolderList item_name = (FolderList)ca.getItem(position);
    FolderList DocumentID = (FolderList)ca.getItem(position);
    FolderList type = (FolderList)ca.getItem(position);

    Intent mIntent = new Intent();  
    mIntent.putExtra("item_name", item_name.folder_name);
    mIntent.putExtra("item_id", DocumentID.ID);
    mIntent.putExtra("item_type", type.type);

    mIntent.getStringExtra("item_name");

    String Type = mIntent.getStringExtra("item_type");

    Log.i("Type", Type);

    if {
       // Some code here...
    } else {
        Intent i = new Intent(getApplicationContext(), Display_image.class);
        i.putExtra("item_name", item_name.folder_name);
        i.putExtra("ID", DocumentID.ID);
        i.putExtra("item_type", type.type);
        i.putExtra("User_ID",User_ID);

        i.getStringExtra("item_name");
        Id = i.getStringExtra("ID");
        i.getStringExtra("item_type");
        startActivity(i);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的代码:我想使用下载管理器

    SoapPrimitive DocumentResponse …
Run Code Online (Sandbox Code Playgroud)

android download-manager android-progressbar

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

薄蓝色进度条

我正在尝试创建一个薄的蓝色进度条,类似于:

在此输入图像描述

我不是很好Drawables,但是我改变了ProgressBar绿色,但我不确定如何使它变得薄而蓝:

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"
        android:orientation="vertical"
     >
      <ProgressBar 
        android:id="@+id/ProgressBar" 
        android:layout_centerInParent="true"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:progressDrawable="@drawable/progress"
        style="@android:style/Widget.ProgressBar.Horizontal"
        android:visibility="gone"
    />

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

可绘制

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

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@android:id/background">
        <shape>
            <corners android:radius="5dip" />
            <gradient
                    android:startColor="#ff9d9e9d"
                    android:centerColor="#ff5a5d5a"
                    android:centerY="0.75"
                    android:endColor="#ff747674"
                    android:angle="270"
            />
        </shape>
    </item>

    <item android:id="@android:id/secondaryProgress">
        <clip>
            <shape>
                <corners android:radius="5dip" />
                <gradient
                        android:startColor="#80ffd300"
                        android:centerColor="#80ffb600"
                        android:centerY="0.75"
                        android:endColor="#a0ffcb00"
                        android:angle="270"
                />
            </shape>
        </clip>
    </item>
    <item
        android:id="@android:id/progress"
    >
        <clip>
            <shape>
                <corners
                    android:radius="5dip" />
                <gradient
                    android:startColor="#33FF33"
                    android:endColor="#008000"
                    android:angle="270" />
            </shape>
        </clip>
    </item>

</layer-list>
Run Code Online (Sandbox Code Playgroud)

android android-progressbar android-drawable

6
推荐指数
1
解决办法
5755
查看次数

如何在Android应用程序中创建进度对话框?

我正在开发应用程序,以便在接收我想要显示"进度对话框"的数据时从互联网接收一些数据.我在我的应用程序中使用了"AsyncTask".

问题是如何使用它以及如何显示100%的百分比?

请建议我并给我一些例子.谢谢你,对不起我的英文.

android progressdialog android-progressbar android-asynctask

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

可以更改SwipeRefreshLayout中使用的drawable吗?

是否可以将SwipeRefreshLayout中的drawable 默认进度更改为自定义drawable?

如果是,我会丢失轮换/动画或其他财产吗?

说的drawable

geometry android drawable android-progressbar swiperefreshlayout

6
推荐指数
1
解决办法
2212
查看次数

AsyncTask中的ProgressDialog setProgress和setMessage不起作用

我有asynktask,显示progressDialog并在doInBackground方法中更新其值.方法代码:

@Override
protected void onPreExecute() {
    progress = new ProgressDialog(cont);
    progress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
    progress.setIndeterminate(true);
    progress.setTitle(cont.getResources().getString(R.string.pleaseWait));
    progress.setMessage(cont.getResources().getString(R.string.loadingImages));
    progress.show();
    super.onPreExecute();
}

@Override
protected String doInBackground(Void... arg0) {
    progress.setProgress(2);
    //do some work on the database and network
    progress.setProgress(25);
    //Do some extra work
    for(int i = 0; i < itemImagesList.size(); i++){
        publishProgress((int) ((i / (float) itemImagesList.size()) * 100));
        //Do somework
    }
}

@Override
protected void onProgressUpdate(Integer... prog) {
    progress.setProgress(prog[0]);
}

@Override
protected void onPostExecute(String result) {
    progress.dismiss();
    super.onPostExecute(result);
}
Run Code Online (Sandbox Code Playgroud)

progressDialog值根本不会改变!如果我尝试使用以下方法设置对话框消息:

progress.setMessage("At item "+i);
Run Code Online (Sandbox Code Playgroud)

如果我把它放在方法的中间会发生一些异常,但在第一次它工作正常!

怎么了?

android android-progressbar android-asynctask

6
推荐指数
1
解决办法
4573
查看次数

Cordova飞溅屏幕改变了android上的微调颜色

我在iOS上找到了一些改变微调器颜色的解决方案:

如何在iOS phonegap应用程序中显示自定义Splash Screen Spinner(即带有白色的微调器)?

在cordova-plugin-splashscreen中更改Splash Screen Spinner的颜色

...以及其他几个或多或少相关的问题,但没有什么可以改变android上启动画面的加载微调器的颜色.我的闪屏是蓝色的,旋转器是天蓝色的 - 不是真的可见 - 并且想把它变成白色.

我使用的cordova-plugin-splashscreenhttps://cordova.apache.org/docs/en/latest/reference/cordova-plugin-splashscreen/index.html,我使用本地构建我的应用程序cordova build android,并设法在我的设备上部署我的代码.但改变旋转器的颜色并没有好运.

platforms/android/src/org/apache/cordova/splashscreen/Splashscreen.java在创建ProgressBar对象时,我认为要编辑的代码是:

private void spinnerStart() {
    cordova.getActivity().runOnUiThread(new Runnable() {
        public void run() {
            spinnerStop();

            spinnerDialog = new ProgressDialog(webView.getContext());
            spinnerDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
                public void onCancel(DialogInterface dialog) {
                    spinnerDialog = null;
                }
            });

            spinnerDialog.setCancelable(false);
            spinnerDialog.setIndeterminate(true);

            RelativeLayout centeredLayout = new RelativeLayout(cordova.getActivity());
            centeredLayout.setGravity(Gravity.CENTER);
            centeredLayout.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

            /* The following line here: */
            ProgressBar progressBar = new ProgressBar(webView.getContext());
            RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, …
Run Code Online (Sandbox Code Playgroud)

android splash-screen android-progressbar cordova

6
推荐指数
1
解决办法
3429
查看次数

如何跟踪截击请求的进度

我一直在使用凌空网络库一段时间了.为了向用户显示他们的请求被发送,我向他们展示了一个不确定的进度条,我将其隐藏在onResponse或中onErrorResponse.

Bot现在,我想向用户显示请求的进度并更新进度条的进度.从本质上讲,我不想再使用不确定的.

说我正在提出这个请求:

/ Instantiate the RequestQueue.
RequestQueue queue = Volley.newRequestQueue(this);
String url ="http://www.google.com";
//Show progressBar here

// Request a string response from the provided URL.
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
            new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
        //I Hide progressBar here, and parse and display the response.
    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        //I Hide progressBar here also and show a dialog to retry.
    }
});
// …
Run Code Online (Sandbox Code Playgroud)

android android-progressbar android-volley

6
推荐指数
0
解决办法
2130
查看次数