当前位置: 首页 > 知识库问答 >
问题:

有没有办法自定义默认进度条(圆形,而不是水平),而不使用可绘制资源?

杜鸿彩
2023-03-14

我只是想知道是否有一种简单的方法来定制android中提供的默认循环进度条。

让我澄清这个问题。

我只想要一个圆形,在全屏显示我的应用程序名称的文本下方,显示一些代表进度(网络连接)的动态,如许多应用程序所示。

我所尝试的。

1) 使用ProgressDialog。我可以成功地添加应用程序的标题,并获得正确的旋转器(圆圈)。但无法将其放置在对话框的水平中心。它总是显示在左边。然后我从一些帖子中了解到,用这种方式定制是不可能的。这是真的吗?我不确定。但我没有找到任何适合这样做的API。

2) 接下来,我尝试了一个带有进度条的自定义对话框。我更改了对话框的背景,添加了我的应用程序标题文本,并使其全屏显示。下面是xml布局。

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

    <TextView android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="MY APP NAME"
        android:textStyle="bold"
        android:textColor="#FFFFFF"  
        android:textSize="25sp" 
        android:gravity="center_horizontal"
        android:layout_marginTop="100dp" />


     <ProgressBar android:id="@+id/login_progressbar" 
        android:layout_marginTop="20dp"
        style="?android:attr/progressBarStyle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"  />"


</LinearLayout>

在活动代码中,我创建了如下对话框:

 dialog = new Dialog(this, android.R.style.Theme_DeviceDefault_NoActionBar_Fullscreen);

我几乎实现了我想要的,但不是100%。我有一个非水平进度条。但它不是姜饼手机上显示的简单圆形。它就像两条横杆和一个圆圈交替移动。

但是在软糖平板电脑中,它就像一个旋转的圆圈,我想要的方式。这似乎是设备/应用程序主题相关的问题。

那么,我如何在所有设备上获得定制的统一外观(我不想使用图像),如以下图像:

更新:

与“果冻豆标签”和“姜饼手机”的行为差异有关的问题最终证明是一件有趣的事情。

通过将xml布局中的android:layout_width=“match_parent”更改为android:layout_width=“wrap_content”,解决了这个问题。在手机中,视图(旋转器)被额外拉伸以匹配家长,行为也是如此。但在tab中,尽管它与父项匹配,但它如何能够按预期显示出来,可能是因为屏幕空间太大。不过,我认为应该有一些简单的方法来定制android中的ProgressBar或ProgressDialog。

有关style=“?android:attr/progressBarStyle”的更多细节的链接或参考可能会有所帮助。

共有2个答案

邵文乐
2023-03-14

你可以在android中找到许多与制作圆形条有关的示例

Android空心圆钢

圆形寻道杆

我用了一个更简单的圆型设计。

我的Android示例:

  1. https://github.com/shujat89/Android/tree/master/myandroid实践/MyCircularbar
段阳夏
2023-03-14

我发现以下简单的解决方案很好地工作(复制代码在这里的情况下提供的链接停止工作在一个点):

创建一个可绘制资源,例如/res/drawable/progressbar\u custom。xml和添加xml:

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="4000"
    android:fromDegrees="0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toDegrees="720" >

<shape
    android:innerRadius="20dp"
    android:shape="ring"
    android:thickness="4dp"
    android:useLevel="false" >
    <size
        android:height="48dp"
        android:width="48dp" />

    <gradient
        android:centerColor="#80ffffff"
        android:centerY="0.5"
        android:endColor="#ffffffff"
        android:startColor="#00ffffff"
        android:type="sweep"
        android:useLevel="false" />
</shape>

用作:

<ProgressBar
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:indeterminateDrawable="@drawable/progressbar_custom" />

对于不同的尺寸,通过将尺寸除以2并减去厚度来计算内环。在这种情况下,您还必须使用相同的尺寸layout_width

关于http://codebin.co.uk/blog/custom-indeterminate-progressbar-on-android/持续时间的更多细节

 类似资料:
  • 本文向大家介绍Android自定义水平进度条的圆角进度,包括了Android自定义水平进度条的圆角进度的使用技巧和注意事项,需要的朋友参考一下 平时项目中经常用到自定义进度条样式,我们一般实现的也是下面的第一种,至于第二种的圆角进度,网上介绍的资料也不是很多,这里一起展示一下这两种的实现。 下面开始看代码,先从主界面布局开始看起: 两个进度条布局,然后是不同的progressDrawable布局:

  • 本文向大家介绍Android使用Canvas绘制圆形进度条效果,包括了Android使用Canvas绘制圆形进度条效果的使用技巧和注意事项,需要的朋友参考一下 前言 Android自定义控件经常会用到Canvas绘制2D图形,在优化自己自定义控件技能之前,必须熟练掌握Canvas绘图机制。本文从以下三个方面对Canvas绘图机制进行讲解: 画布Canvas 画笔Paint 示例圆形进度条 画布Ca

  • 本文向大家介绍Android动态自定义圆形进度条,包括了Android动态自定义圆形进度条的使用技巧和注意事项,需要的朋友参考一下 效果图: A.绘制圆环,圆弧,文本 B.自定义属性的具体步骤 具体步骤: 1. 定义属性: 在values目录下创建attrs.xml 2. 在布局文件中引用当前应用的名称空间 3. 在自定义视图标签中使用自定义属性 4. 在自定义View类的构造方法中, 取出布局中

  • 本文向大家介绍android自定义进度条渐变圆形,包括了android自定义进度条渐变圆形的使用技巧和注意事项,需要的朋友参考一下 在安全卫生上,经常看到有圆形的进度条在转动,效果非常好看,于是就尝试去实现一下,具体实现过程不多说了,直接上效果图,先炫耀下。 效果图: 分析:比较常见于扫描结果、进度条等场景 利用canvas.drawArc(RectF oval, float startAngle

  • 本文向大家介绍Android实现自定义圆形进度条,包括了Android实现自定义圆形进度条的使用技巧和注意事项,需要的朋友参考一下 今天无意中发现一个圆形进度,想想自己实现一个,如下图: 基本思路是这样的: 1.首先绘制一个实心圆 2.绘制一个白色实心的正方形,遮住实心圆 3.在圆的中心动态绘制当前进度的百分比字符 4.绘制一个与之前实心圆相同颜色的空心圆 5.逐渐改变当前的百分比 6.根据百分比

  • 我试图创建一个进度条,当它水平前进时,进度条本身会以垂直旋转的方式进行动画。我通过以下方式成功地使用了我的进度绘图功能: 这是我的画: 但我希望它在前进的过程中有一个微妙的滚动效果。所以看起来垂直线在向后移动。你明白了吗?非常感谢您的帮助。谢谢 编辑:我尝试创建一个动画列表作为我的进度绘图,但我仍然不能看到动画。动画列表可以在进度项目的剪辑中吗?