0

現在、オーディオレコーダーの機能強化を行っています。現在、振幅を追加してマイク入力レベルを取得し、ユーザーがオーディオが録音されているかどうかを確認できるように表示しています。正常に動作していますdialog.setProgress();が、ユーザーの前でうまく表示したかったので、色を変えて進行状況の背景を非表示にし、進行状況に応じて変化する進行部分のみを表示する予定です。たとえば、20 下が緑、40 下が黄、60 下がオレンジ、60 上が赤で、メディア プレーヤーで見られる典型的なオーディオ レベルと同様です。しかし、私の場合、プログレスバーの背景を透明に設定できず、progressDrawable を変更するとプログレスバー全体が変更される理由がわかりません。これには助けが必要です。とにかくここ」

<ProgressBar
                style="?android:attr/progressBarStyleHorizontal"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/mic_level"
                android:indeterminate="false"
                android:layout_below="@+id/chk_Record"
                android:layout_alignParentLeft="true"
                android:layout_marginTop="31dp"
                android:layout_alignParentRight="true"
                android:progress="50"
                android:clickable="false"
                android:progressDrawable="@color/holo_bright_blue"
                android:background="@color/transparent"/>

ここに画像の説明を入力

4

2 に答える 2

0

以下のように、プログレス バーのドローアブルを作成できます。これは、私のプロジェクトの 1 つから取った非常に大まかなガイドです。したがって、おそらく (ほぼ確実に) グラデーションは必要ありませんが、少なくとも大まかなアイデアは得られるはずです。

以下は、進行状況バーの背景を透明にし、前景色を緑に変更します。

これをドローアブル フォルダーに配置します。名前は progress_styles.xml で、現在はプログレスバー セットにあります。

android:progressDrawable="@drawable/progress_styles"

<item android:id="@android:id/background">
    <shape>
        <corners android:radius="5dip" />

        <gradient
            android:startColor="@android:color/transparent" />
    </shape>
</item>
<item android:id="@android:id/secondaryProgress">
    <clip>
        <shape>
           <corners android:radius="5dip" />
            <gradient
                android:startColor="#00ff00" />
        </shape>
    </clip>
</item>
<item android:id="@android:id/progress">
    <clip>
        <shape>
            <corners android:radius="5dip" />
            <gradient
                android:startColor="#00ff00" />
        </shape>
    </clip>
</item>

これがお役に立てば幸いです。

于 2013-07-01T11:10:33.323 に答える