为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Android中自定义进度栏

/ 猿问

如何在Android中自定义进度栏

慕沐林林 2019-07-22 15:41:37

如何在Android中自定义进度栏

我正在开发一个应用程序,我想在其中显示一个ProgressBar,但我想替换默认的android。ProgressBar.

那么如何自定义ProgressBar?

我需要一些图形和动画吗?

我读了下面的文章,但没能让它起作用:

自定义进度栏Android


查看完整描述

3 回答

?
慕斯卡3215842

自定义ProgressBar需要为进度条的背景和进度定义属性。

创建一个名为customprogressbar.xml在你的res->drawable文件夹:

自定义Progressbar.xml

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

    <!-- Define the background properties like color etc -->
    <item android:id="@android:id/background">
    <shape>
        <gradient
                android:startColor="#000001"
                android:centerColor="#0b131e"
                android:centerY="1.0"
                android:endColor="#0d1522"
                android:angle="270"
        />
    </shape>
   </item>

  <!-- Define the progress properties like start color, end color etc -->
  <item android:id="@android:id/progress">
    <clip>
        <shape>
            <gradient
                android:startColor="#007A00"
                android:centerColor="#007A00"
                android:centerY="1.0"
                android:endColor="#06101d"
                android:angle="270"
            />
        </shape>
    </clip>
    </item></layer-list>

现在,您需要设置progressDrawable财产customprogressbar.xml(可拖)

您可以在XML文件或活动中(在运行时)执行此操作。

在XML中执行以下操作:

<ProgressBar
    android:id="@+id/progressBar1"
    style="?android:attr/progressBarStyleHorizontal"
    android:progressDrawable="@drawable/custom_progressbar"         
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

在运行时执行以下操作

// Get the Drawable custom_progressbar                     
    Drawable draw=res.getDrawable(R.drawable.custom_progressbar);// set the drawable as progress drawable
    progressBar.setProgressDrawable(draw);

编辑:更正的XML布局


查看完整回答
反对 回复 2019-07-22
?
慕侠2389804

在XML中

<ProgressBar
        android:id="@+id/progressBar1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        style="@style/CustomProgressBar" 
        android:layout_margin="5dip" />

和在res/values/styles.xml:

<resources> 
        <style name="CustomProgressBar" parent="android:Widget.ProgressBar.Horizontal">
          <item name="android:indeterminateOnly">false</item>
          <item name="android:progressDrawable">@drawable/custom_progress_bar_horizontal</item>
          <item name="android:minHeight">10dip</item>
          <item name="android:maxHeight">20dip</item>
        </style>       
    <style name="AppTheme" parent="android:Theme.Light" /></resources>

custom_progress_bar_horizontal是存储在可绘制文件夹中的XML,该文件夹定义自定义进度条。有关更多细节,请参见博客.

希望这能帮到你。


查看完整回答
反对 回复 2019-07-22
?
catspeake

自定义进度条的颜色,即在旋转器类型的情况下,需要一个XML文件,并在各自的java文件中启动代码。

创建XML文件并将其命名为Progressbar.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    tools:context=".Radio_Activity" >

    <LinearLayout
        android:id="@+id/progressbar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <ProgressBar
            android:id="@+id/spinner"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
        </ProgressBar>
    </LinearLayout></LinearLayout>

使用下面的代码可以得到各种期望颜色的旋转器。在这里,我们使用十六进制代码以蓝色显示旋转器。

Progressbar spinner = (ProgressBar) progrees.findViewById(R.id.spinner);spinner.getIndeterminateDrawable().setColorFilter(Color.parseColor("#80DAEB"),
                android.graphics.PorterDuff.Mode.MULTIPLY);


查看完整回答
反对 回复 2019-07-22

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信