样式不确定ActionBar上的进度条

我想在操作栏上设置progressBar但是设置

requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); setProgressBarIndeterminateVisibility(true); 

onCreate方法上产生一个中等大小的progressBar(48dip x 48dip)我想。 我想改变progressBar的大小,但我找不到如何做到这一点。 你能帮我吗?

  • 如何创建像指标一样的圆形进度条(饼图) - Android
  • 在ProgressBar中,android:progressBarStyle属性的含义是什么?
  • 在Android中实现类似于iOS的旋转活动指示器
  • 如何创建一个重复的animation移动渐变drawable,就像一个不确定的进展?
  • 如何使径向/圆形ProgressBar不旋转
  • c#xamarin循环进度条 - Android
  • 修改进度条的资源图像
  • 触摸屏幕时关闭进度对话框
  • 您需要创建自己的样式才能应用于ActionBar。 在Android开发者博客上有一个很好的教程。 要设置中间进度条的样式,请尝试使用indeterminateProgressStyleWidget.ProgressBar.Small 。 这是一个简单的例子。

        

    ActionBar上带有样式的ANIMATED不确定进度条图标:

    1.define res / values / styles.xml(这个例子使用Sherlock库在旧的Android版本中提供动作栏,因此,如果你不使用Sherlock,你应该使用适当的父类来定义你的自定义样式):

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

    2.define res / drawable / progress_indeterminate_custom.xml:

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

    3.以上代码使用2个图像(ic_progress_logo1和ic_progress_logo2)作为自定义进度不确定图标。 您可以通过添加新的项目元素来使用尽可能多的图像/绘图。 此外,您可以应用不同的效果/animation。 更多信息: animation资源

    4.使用AndroidManifest.xml创建的应用样式:

             

    5.享受您的animation自定义进度不确定图标:D

    我努力解决所有这些解决方案,因为我没有使用actionbarsherlock 。 我利用了Vlasto Benny Lava的答案,这对我来说最初并不适用。

    这是我一步一步做的:

    1)打开你的styles.xml文件,它应该在/res/values/styles.xml下。 如果它不存在则创建它。

    2)粘贴:

          

    我遇到过一个catchya,你不能使用主题名称“AppTheme”,否则覆盖将无效。 我用了“MyTheme”。 这个主题是使用Holo所以它有一个黑色的ActionBar,如下图所示。 如果你想要一个白色的动作栏,那么当然用android:Theme.Holo.Light等替换android:Theme.Holo.Light

    3)编辑AndroidManifest.xml

    你的必须包含android:theme="@style/myTheme"以便应用程序使用styles.xml覆盖样式

    即,我的清单应用程序标记文件看起来像这样:

      

    因为您只是缩小现有进度png的大小,所以无需导出任何图像并将其移动到可绘制位置等。

    这是我的样子,图标的大小对我来说是完美的。

    在此处输入图像描述

    对于ActionBarSherlock,您可以通过为Widget.ProgressBar.Small设置父级来更改不确定的进度,这也可以在没有Sherlock的情况下工作。

    我从SDK中的android-15 res文件夹中获取了drawable,确保获取progress_small_white.xml和相关资源。

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

    要使ActionBar上的ProgressBar更小 ,你想要做的是覆盖Widget.Holo.ProgressBar.Small像这样

        

    并将大小设置为您想要的任何值。

    on Create方法中粘贴下面的代码,然后在中间模式下运行下面的栏。
    如果要显示进度百分比,则注释progressBar.setIndeterminate(true); 方法并取消注释progressBar.setProgress(65)方法并保持进度

      progressBar = new ProgressBar(this, null, android.R.attr.progressBarStyleHorizontal); progressBar.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, 24)); //progressBar.setProgress(65); //progressBar.setBackgroundDrawable(getResources().getDrawable(R.color.lock_background_greeen)); progressBar.setIndeterminate(true); // retrieve the top view of our application final FrameLayout decorView = (FrameLayout) getWindow().getDecorView(); decorView.addView(progressBar); ViewTreeObserver observer = progressBar.getViewTreeObserver(); observer.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { View contentView = decorView.findViewById(android.R.id.content); progressBar.setY(contentView.getY() - 10); ViewTreeObserver observer = progressBar.getViewTreeObserver(); observer.removeGlobalOnLayoutListener(this); } }); 

    我必须与旧版Android SDK兼容,所以我必须保持简单和使用:

    Styles.xml

       

    AndroidManifest.xml中

     android:theme="@style/TallerTitleBarDialogThemeStyle" 

    对于我需要调整的活动。