【问题标题】:Progress Bar Stairs进度条楼梯
【发布时间】:2015-07-15 12:30:02
【问题描述】:

我刚刚开始开发 Android 应用程序。因此我有一个问题,用于设计我的 GUI。也许有一个可能的内置小部件,但我没有找到合适的措辞(英语不是我的母语)。

我正在寻找类似评级栏的东西,您可以在其中选择一个介于 1 和 5 之间的值。我想要一些栏而不是星号(左侧是最小的,右侧是最高)。应该看起来像信号强度通知中的“楼梯”。为了使其更具挑战性,我希望每个条具有不同的颜色(最小值为绿色,最大值为红色)。因此,我不认为具有不同图纸的评分栏适合我的需要,因为我可以更改星形布局,而不是像第一个星应该变成 5dp 条,第二个星应该变成 15dp 等等。

有没有我可以使用的内置小部件?

我附上了一张图片来展示我的想法。

希望你能帮到我

【问题讨论】:

    标签: java android xml user-interface


    【解决方案1】:

    level-list 可以轻松实现您想要的。在您的情况下,您需要五个不同的可绘制对象,每个级别,然后将它们组合到可绘制的 xml 文件中,例如:

    <?xml version="1.0" encoding="utf-8"?>
    <level-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:drawable="@drawable/no_level"
        android:maxLevel="0" />
    <item
        android:drawable="@drawable/first_level"
        android:maxLevel="1" />
    <item
        android:drawable="@drawable/second_level"
        android:maxLevel="2" />
    <item
        android:drawable="@drawable/third_level"
        android:maxLevel="3" />
    
    <item
        android:drawable="@drawable/forth_level"
        android:maxLevel="4" />
    </level-list>
    

    例如,将此可绘制对象设置为ImageView 的源。在运行时,检索ImageView并调用setImageLevel,取值从0到4,会显示对应的级别

    【讨论】:

    • 好的,很好,谢谢 :) 是否可以检测到用户点击了哪个栏(或绘图的一部分)?例如,当我希望用户在触摸第三条时直接将 imagelevel 设置为 3 时?
    • 不使用级别列表解决方案。我可能误读了你的问题。为什么不能使用 RatingBar?
    • 我喜欢带有级别列表的解决方案 - 显示正是我想要的方式。但我想要一个可点击的组件来更改图像级别(如评级栏)。我认为要自定义评级栏,可能很难有 5 个不同的级别栏而不是 5 个相同的星星。还是像级别列表解决方案一样编辑评级栏的外观?
    • 它稍微复杂一些,但你会得到两者。在 RatingBar 上,您必须使用自定义样式,才能自定义 progressDrawable。您可以尝试将两者结合起来,但我不确定它是否会起作用。为了简单起见,我建议您使用level-list 方法
    • 好吧,好像不行。 RatingBar 可以通过 progressdrawable 自定义,但您只能更改一颗星的外观(空的和满的)。所以我认为没有办法制作不同大小的酒吧。
    猜你喜欢
    • 1970-01-01
    • 2017-12-24
    • 1970-01-01
    • 1970-01-01
    • 2020-08-03
    • 2015-05-29
    • 1970-01-01
    • 2015-02-22
    • 1970-01-01
    相关资源
    最近更新 更多