Как показать значение полосы эквалайзера в textview? - PullRequest
0 голосов
/ 09 декабря 2018

Проблема, с которой я столкнулся, заключается в том, что я хочу отображать текстовое представление внутри каждой панели поиска для каждого номера полосы в объекте эквалайзера.

Текстовое представление действительно отображается внутри панели поиска, но только нижнее показывает значение, когдая перемещаю панель поиска.

Есть идеи, почему?

enter image description here

Equalizer.java код

private void setupEqualizer(){

    short numberOfBandsFreq = mEqualizer.getNumberOfBands();

    final short lowerEqualizerBandLevel = mEqualizer.getBandLevelRange()[0];
    final short upperEqualizerBandLevel = mEqualizer.getBandLevelRange()[1];

    for (short i = 1; i < numberOfBandsFreq; i++){
        final short equalizerBandIndex = i;

        mEqLinearLayout.setGravity(Gravity.CENTER);


       final ArcSeekBar arcSeekBar = new ArcSeekBar(this);


       progressValueTv = new TextView(this);
       progressValueTv.setLayoutParams(paramsProgress);
       progressValueTv.setTextColor(getResources().getColor(R.color.white));
       progressValueTv.setText("0dB");

        int[] colorArray = getResources().getIntArray(R.array.gradient);

        arcSeekBar.setId(i);
        arcSeekBar.setLayoutParams(arkSeekBarParams);
        arcSeekBar.setProgressWidth(50);
        arcSeekBar.setProgressGradient(colorArray);
        arcSeekBar.setMaxProgress(upperEqualizerBandLevel - lowerEqualizerBandLevel);
        arcSeekBar.setProgress(mEqualizer.getBandLevel(equalizerBandIndex));

        arcSeekBar.setOnProgressChangedListener(new ProgressListener() {
            @Override
            public void invoke(int i) {
                mEqualizer.setBandLevel(equalizerBandIndex, (short) (i + lowerEqualizerBandLevel ));
                progressValueTv.setText(String.valueOf((i + lowerEqualizerBandLevel) / 100) + " dB");
            }
        });

        seekBarRowLayout.addView(lowerEqualizerBandLevelTv);
        seekBarRowLayout.addView(arcSeekBar);
        seekBarRowLayout.addView(progressValueTv);
        seekBarRowLayout.addView(upperEqualizerBandLevelTv);

        mEqLinearLayout.addView(seekBarRowLayout);

    }

}
...