我想在android中创建一个自定义进度条.我已经使用了以下xml文件(progress_bar_horizontal.xml):
<?xml version="1.0" enCoding="utf-8"?> <@R_887_3419@ xmlns:androID="http://schemas.androID.com/apk/res/androID"> <item androID:ID="@androID:ID/background"> <shape> <corners androID:radius="8dip" /> <stroke androID:wIDth="2dip" androID:color="#FFFF"/> <solID androID:color="#FFFF"/> </shape> </item> <item androID:ID="@androID:ID/secondaryProgress"> <clip> <shape> <corners androID:radius="8dip" /> <stroke androID:wIDth="2dip" androID:color="#FFFF"/> <solID androID:color="#FF00"/> </shape> </clip> </item> <item androID:ID="@androID:ID/progress"> <clip> <shape> <corners androID:radius="8dip" /> <stroke androID:wIDth="2dip" androID:color="#FFFF"/> <solID androID:color="#FF00"/> </shape> </clip> </item> </@R_887_3419@>
除了事实上我希望双方的进度条都有进展之外,一切都很有效.上述代码使得进度条在左侧被舍入并且简单地在右侧切割(不是圆形).这可能是因为剪辑标签.你能帮帮我吗?我应该改变什么才能在我的进度条中取得进展?
完整的布局如下:
<?xml version="1.0" enCoding="utf-8"?> <linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" androID:orIEntation="vertical"> <linearLayout androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" androID:orIEntation="vertical" androID:background="@drawable/gradIEnt_progress" androID:padding="10dip" > <linearLayout androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:orIEntation="horizontal" > <TextVIEw androID:ID="@+ID/progress_header" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:textcolor="#FF000000" androID:textAppearance="?androID:attr/textAppearanceMedium" androID:textStyle="bold" androID:text="Uploading" /> <TextVIEw androID:ID="@+ID/progress_percent" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:textcolor="#FF000000" androID:textAppearance="?androID:attr/textAppearanceMedium" androID:textStyle="bold" androID:text="55%" androID:paddingleft="10dip" /> </linearLayout> <Progressbar androID:ID="@+ID/progress_bar" androID:layout_gravity="center" androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" androID:progressDrawable="@drawable/progress_bar_horizontal" androID:maxHeight="12dip" androID:minHeight="12dip" androID:max="100" /> </linearLayout> </linearLayout>
以下是我努力的结果:link text
我希望红色的条纹在右侧也有圆角.
非常感谢你的评论.
解决方法:
这是时代的更新答案:
AndroID源代码使用Patch 9文件来实现效果:
http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.4_r1/frameworks/base/core/res/res/drawable/progress_horizontal_holo_dark.xml/
所以从布局xml开始:
<Progressbar androID:ID="@+ID/custom_progress_bar" androID:indeterminateOnly="false" androID:progressDrawable="@drawable/custom_progress_bar_horizontal" androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" androID:minHeight="13" androID:progress="33" androID:secondaryProgress="66" />
你可以将很多这个移动到一个样式xml,但这不是重点.我们真正关心的是androID:progressDrawable =“@ drawable / custom_progress_bar_horizontal” – 这将允许我们指定我们自己的自定义进度条:
<@R_887_3419@ xmlns:androID="http://schemas.androID.com/apk/res/androID"> <item androID:ID="@androID:ID/background" androID:drawable="@androID:drawable/custom_progress_bg" /> <item androID:ID="@androID:ID/secondaryProgress"> <scale androID:scaleWIDth="100%" androID:drawable="@androID:drawable/custom_progress_secondary" /> </item> <item androID:ID="@androID:ID/progress"> <scale androID:scaleWIDth="100%" androID:drawable="@androID:drawable/custom_progress_primary" /> </item></@R_887_3419@>
或者您不必使用Patch 9作为背景 – 例如,这里是一个带有1dp边框的简单白色背景:
<item androID:ID="@androID:ID/background"> <shape> <corners androID:radius="6.5dp" /> <solID androID:color="@androID:color/white" /> <stroke androID:wIDth="1dp" androID:color="@androID:color/darker_gray" /> </shape></item>
AndroID Asset Studio有一个很棒的工具来帮助您生成Patch 9文件:
http://android-ui-utils.googlecode.com/hg/asset-studio/dist/nine-patches.html
在工具之前使用填充的示例主xdpi png:
在工具之前使用填充的辅助xdpi png示例:
最后的输出:
总结以上是内存溢出为你收集整理的在android中双方四舍五入的进度条全部内容,希望文章能够帮你解决在android中双方四舍五入的进度条所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)