Android 横向不定进度条棒棒糖
Android horizontal indeterminate progress bar lollipop
我在我的 Android 应用程序中实现了水平不确定进度条。我在 lollipop (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
的可绘制对象。这又引用了 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>
在预览中看起来不错,但构建时没有出现进度条。
正如@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>
我在我的 Android 应用程序中实现了水平不确定进度条。我在 lollipop (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
的可绘制对象。这又引用了 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>
在预览中看起来不错,但构建时没有出现进度条。
正如@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>