web-dev-qa-db-ja.com

Android水平プログレスバー?

このようなプログレスバーを実装したい

enter image description here

どうすればいいですか、図書館があるかどうか教えてください

12
youssefhassan

多くの人がこの投稿を見ているのを見たので、編集して例を共有する必要があると思いました。

注(この例は完全ではありません。まだ進行中ですが、出発点だと思います)

GitHub: Githubの例

enter image description here

この例の重要な部分は次のとおりです。ドローアブルでxmlファイルcustom_progress_bar_horizo​​ntal.xmlを作成し、以下のコンテンツを追加します。

<?xml version="1.0" encoding="UTF-8"?>

<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <item
        Android:id="@Android:id/background">
        <shape>
            <padding
                Android:bottom="3dip"
                Android:top="3dip"
                Android:left="3dip"
                Android:right="3dip"/>
            <corners
                Android:radius="5dip" />
            <gradient
                Android:startColor="#2a2b2f"
                Android:centerColor="#2a2b2f"
                Android:centerY="0.50"
                Android:endColor="#2a2b2f"
                Android:angle="270" />
        </shape>
    </item>
    <item
        Android:id="@Android:id/progress">
        <clip>
            <shape>
                <corners
                    Android:radius="5dip" />
                <gradient
                    Android:startColor="#ff0e75af"
                    Android:endColor="#ff1997e1"
                    Android:angle="90" />
            </shape>
        </clip>
    </item>
</layer-list>

Styles.xmlに次のコードを追加します

<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>

アクティビティレイアウトにスタイルを追加したら、次を追加します。

    <ProgressBar
        Android:id="@+id/customProgress"
        style="@style/CustomProgressBar"
        Android:layout_width="match_parent"/>

ProgressBarクラスを拡張し、そこで変更を加える必要があるため、フレーム内の進行状況は少し注意が必要です。

ここにいくつかの例を残し、それらをgithubプロジェクトに追加するときに通知します。

進行状況を自分のやり方で無効にしたい場合の良い例: NumberProgressBar

その他のプログレスバーの例:

カスタムプログレスバー1

カスタムプログレスバー2

カスタムプログレスバー

更新:

また、チェックしてください DiscreteSeekBar これは素晴らしいgithubプロジェクトです。

Gradle:コンパイル 'org.adw.library:discrete-seekbar:1.0.1'

乾杯、

30
MSA