2

ProgressBar に問題があります。「開始」ボタンを押すと、ランダム関数が配列から 1 つの色を選択しますが、最初の色のみが「背景」として設定されます。もう一度クリックすると、新しい色が選択されますが、背景として設定されません。アプリを終了して再度起動すると、新しい色が選択されますが、現在は 1 つだけです。ボタンを押すたびに背景色を変えたいです。

activity_main.xml

<ProgressBar
            android:id="@+id/circularProgressbar"
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:indeterminate="false"
            android:max="100"
            android:progress="100"
            android:progressDrawable="@drawable/circular"
            android:secondaryProgress="100" />

循環.xml

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

 <item  android:id="@+id/SecondaryProgress">  
    <shape
          android:innerRadiusRatio="5.2"
          android:shape="ring"
          android:useLevel="true"
          android:thicknessRatio="9.5">


    </shape>
</item>

MainActivity.java

public void Start(){

ランダムランダム=新しいランダム();

String[] hex_colors = {"F8ED31", "000000", "F7931D", "ED1C24", "7A1777", "ED135A", "71BF43"};

int random_hex = random.nextInt(hex_colors.length); String color="#"+hex_colors[random_hex]; layers = (LayerDrawable) ContextCompat.getDrawable(this,R.drawable.circular); shape = ( GradientDrawable) layers.findDrawableByLayerId(R.id.SecondaryProgress); shape.setColor(Color.parseColor(color)); }

4

1 に答える 1