AndroidでカスタムProgressBarsを操作するときにいくつか問題があります。つまり、正しいProgressBarの2つの.xmlの説明があります。 ここで彼らは、次のとおりです。Androidカスタムプログレスバーの操作
custom_progress_bar_horizontal.xml:
<?xml version="1.0" encoding="UTF-8"?> <!-- @author : @ --> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@android:id/background"> <shape> <corners android:radius="0dip" /> <stroke android:width="1dp" android:color="#ff000000" /> <gradient android:startColor="#ffEEEEEE" android:centerColor="#ffEEEEEE" android:centerY="0.50" android:endColor="#ffEEEEEE" android:angle="270" /> </shape> </item> <item android:id="@android:id/progress"> <clip> <shape> <corners android:radius="0dip" /> <stroke android:width="1dip" android:color="#ff000000" /> <gradient android:startColor="#ff86CF10" android:endColor="#ff86CF10" android:angle="90" /> </shape> </clip> </item>
custom_progress_bar_hor_night.xml:
<?xml version="1.0" encoding="UTF-8"?> <!-- @author : @ --> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@android:id/background"> <shape> <corners android:radius="0dip" /> <stroke android:width="1dp" android:color="#ffffffff" /> <gradient android:startColor="#ff000000" android:centerColor="#ff000000" android:centerY="0.50" android:endColor="#ff000000" android:angle="270" /> </shape> </item> <item android:id="@android:id/progress"> <clip> <shape> <corners android:radius="0dip" /> <stroke android:width="1dip" android:color="#ffffffff" /> <gradient android:startColor="#ff86CF10" android:endColor="#ff86CF10" android:angle="90" /> </shape> </clip> </item>
これらのカスタムプログレスバーは、背景色とシェイプラインの色が異なります。
ここで、Androidアプリケーション(Javaコード)からこれら2つの.xmlファイル(ProgressBarデザイン)を切り替える最も良い方法は何ですか?実際には、アプリ画面のボタンが押されたときにProgressBarのデザインを切り替えたいと思います。
2つのProgressBarインスタンスを上下に配置し、それらの可視性を変更する必要がありますか(1つのProbeBarインスタンスを非表示にするか、その逆の設定にするか)、単一のProgressBarインスタンスで操作するほうが賢明ですか?
EDIT:
アプローチはhereを説明するために、私は知っています。ユーザーは、次のアプローチを使用して現在の進行状況値に基づいて、プログレスバーの三つの異なる.xmlファイルの説明の間を選択:
<?xml version="1.0" encoding="utf-8"?>
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:maxLevel="2999" android:drawable="@drawable/progress_horizontal_red" />
<item android:maxLevel="4999" android:drawable="@drawable/progress_horizontal_yellow" />
<item android:maxLevel="10000" android:drawable="@drawable/progress_horizontal_green" />
</level-list>
私はかなり同じようなことを達成したいです。唯一の違いは、画面上に表示される.xmlファイルを現在の進捗値で変更したくないということです。私はProgressBarデザインをボタンを押すだけで変更できるようにしたい。 android:maxLevel="xxxx"
セレクターは、true
またはfalse
の値を取ることができるものに変更する必要があります。このtrue/false
の値をボタンを押すことでトグルします。
アドバイスをいただければ幸いです。
ありがとうございました。
よろしくお願いいたします。 Bojan。
真ん中に、メイト!これはまさに私が探していたものです。あなたは私の一日を作り、私のために多くの時間を節約しました。ありがとう! – bojankoce