首先,这不是 "如何改变进度条颜色"的问题的重复,它确实解决了我的问题,但它产生了另一个问题.
所以,我有一个水平进度条,我一直在编写/更新进度条一个,即将进度设置为一个,然后设置为两个,(最多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到任何百分比.
有没有办法只更改进度条的默认颜色,仍然有默认动画?
如果不可能,这是否意味着我必须做自己的动画?如果是这样,有人可以给我一个关于如何使用我自己的动画来模仿进度条的片段吗?
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
我有一个场景,在我的聊天应用程序中我想发送照片,照片发送需要时间.我附上了一个进度条(水平),以显示在我的应用程序中发送照片的进度.但我无法更新进度条,因为它是自定义列表视图的项目.
这是我的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) 我正在使用.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) 我正在尝试创建一个薄的蓝色进度条,类似于:

我不是很好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) 我正在开发应用程序,以便在接收我想要显示"进度对话框"的数据时从互联网接收一些数据.我在我的应用程序中使用了"AsyncTask".
问题是如何使用它以及如何显示100%的百分比?
请建议我并给我一些例子.谢谢你,对不起我的英文.
android progressdialog android-progressbar android-asynctask
geometry android drawable android-progressbar swiperefreshlayout
我有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)
如果我把它放在方法的中间会发生一些异常,但在第一次它工作正常!
怎么了?
我在iOS上找到了一些改变微调器颜色的解决方案:
如何在iOS phonegap应用程序中显示自定义Splash Screen Spinner(即带有白色的微调器)?
在cordova-plugin-splashscreen中更改Splash Screen Spinner的颜色
...以及其他几个或多或少相关的问题,但没有什么可以改变android上启动画面的加载微调器的颜色.我的闪屏是蓝色的,旋转器是天蓝色的 - 不是真的可见 - 并且想把它变成白色.
我使用的cordova-plugin-splashscreen是https://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) 我一直在使用凌空网络库一段时间了.为了向用户显示他们的请求被发送,我向他们展示了一个不确定的进度条,我将其隐藏在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)