【问题标题】:Android horizontal indeterminate progress bar lollipopAndroid水平不确定进度条棒棒糖
【发布时间】:2015-05-08 13:46:52
【问题描述】:

我在我的 Android 应用程序中实现了一个水平不确定的进度条。我正在棒棒糖 (v22) 上构建和运行应用程序,因此使用它们的样式。

<ProgressBar
    android:id="@+id/progressBar1"
    style="?android:attr/progressBarStyleHorizontal"
    android:indeterminateOnly="true" 
    android:layout_width="15dp"
    android:layout_height="wrap_content" />

视图的高度似乎是请求的 15dp,但其中包含的动画进度条的高度似乎是固定高度 (~2dp)。是否可以更改水平不确定进度条的高度(例如视图的match_parent)?

我发现引用的样式是android.R.styleable.ProgressBar_indeterminateOnly。我相信这在platforms/android-22/data/res/drawable 中引用了一个名为progress_indeterminate_horizontal_material.xml 的drawable。这又引用了vector_drawable_progress_indeterminate_horizontal.xml

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:height="10dp"
    android:width="360dp"
    android:viewportHeight="10"
    android:viewportWidth="360" >
    <group
        android:name="progress_group"
        android:translateX="180"
        android:translateY="5" >
        <path
            android:name="background_track"
            android:pathData="M -180.0,-1.0 l 360.0,0 l 0,2.0 l -360.0,0 Z"
            android:fillColor="?attr/colorControlActivated"
            android:fillAlpha="?android:attr/disabledAlpha"/>
        <group
            android:name="rect2_grp"
            android:translateX="-197.60001"
            android:scaleX="0.1" >
            <path
                android:name="rect2"
                android:pathData="M -144.0,-1.0 l 288.0,0 l 0,2.0 l -288.0,0 Z"
                android:fillColor="?attr/colorControlActivated" />
        </group>
        <group
            android:name="rect1_grp"
            android:translateX="-522.59998"
            android:scaleX="0.1" >
            <path
                android:name="rect1"
                android:pathData="M -144.0,-1.0 l 288.0,0 l 0,2.0 l -288.0,0 Z"
                android:fillColor="?attr/colorControlActivated" />
        </group>
    </group>
</vector>

我已将这些及其要求添加到我的项目中并开始使用矢量,但到目前为止我无法让进度条显示正确的大小。

调整高度、viewportHeight、translateY和pathData:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:height="5dp"
    android:width="360dp"
    android:viewportHeight="5"
    android:viewportWidth="360" >
    <group
        android:name="progress_group"
        android:translateX="180"
        android:translateY="2.5" >
        <path
            android:name="background_track"
            android:pathData="M -180.0,-2.5 l 360.0,0 l 0,5.0 l -360.0,0 Z"
            android:fillColor="?attr/colorControlActivated"
            android:fillAlpha="?android:attr/disabledAlpha"/>
        <group
            android:name="rect2_grp"
            android:translateX="-197.60001"
            android:scaleX="0.1" >
            <path
                android:name="rect2"
                android:pathData="M -144.0,-2.5 l 288.0,0 l 0,5.0 l -288.0,0 Z"
                android:fillColor="?attr/colorControlActivated" />
        </group>
        <group
            android:name="rect1_grp"
            android:translateX="-522.59998"
            android:scaleX="0.1" >
            <path
                android:name="rect1"
                android:pathData="M -144.0,-2.5 l 288.0,0 l 0,4.0 l -288.0,0 Z"
                android:fillColor="?attr/colorControlActivated" />
        </group>
    </group>
</vector>

在预览中看起来差不多,但是在构建时没有出现进度条。

【问题讨论】:

  • 您的主题是否定义了?attr/colorControlActivated?在框架中使用它时,它被隐式命名为?android:attr/colorControlActivated。在您的应用中包含该文件时,您可能需要将此值显式命名为android:,否则它将假定您的应用的命名空间。

标签: android progress-bar android-5.0-lollipop material-design


【解决方案1】:

正如@alanv 所建议的,我快到了。可以用上面写的方法来调整大小,只是别忘了加上颜色!

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:height="5dp"
    android:width="360dp"
    android:viewportHeight="5"
    android:viewportWidth="360" >
    <group
        android:name="progress_group"
        android:translateX="180"
        android:translateY="2.5" >
        <path
            android:name="background_track"
            android:pathData="M -180.0,-2.5 l 360.0,0 l 0,5.0 l -360.0,0 Z"
            android:fillColor="@color/my_color"
            android:fillAlpha="?android:attr/disabledAlpha"/>
        <group
            android:name="rect2_grp"
            android:translateX="-197.60001"
            android:scaleX="0.1" >
            <path
                android:name="rect2"
                android:pathData="M -144.0,-2.5 l 288.0,0 l 0,5.0 l -288.0,0 Z"
                android:fillColor="@color/my_color" />
        </group>
        <group
            android:name="rect1_grp"
            android:translateX="-522.59998"
            android:scaleX="0.1" >
            <path
                android:name="rect1"
                android:pathData="M -144.0,-2.5 l 288.0,0 l 0,4.0 l -288.0,0 Z"
                android:fillColor="@color/my_color" />
        </group>
    </group>
</vector>

【讨论】:

    猜你喜欢
    • 2015-09-10
    • 1970-01-01
    • 2015-12-24
    • 2015-01-12
    • 1970-01-01
    • 2014-12-15
    • 2015-06-21
    • 2016-02-28
    • 2016-02-11
    相关资源
    最近更新 更多