2017-05-13 7 views
1

사운드에 연결된 SeekBars를 사용하고 버튼의 색상에 연결된 단순한 프로젝트를 만들었습니다.SeekBars를 사용하여 RGB 스케일이 완료되지 않았습니다.

소리에 문제가 없지만 RGB 색 눈금이 있습니다. 코드를 작성했지만 APK를 휴대 전화에 설치하면 오류가 발생했습니다. 내가 끝까지 커서를 이동하면, 색 눈금은 다음과 같이 완료되지 않은 :

enter image description here

당신이 볼 경우, 규모는 색상 범위의 끝이 아니다. 이 문제는 다른 두 개의 RGB SeekBars에서도 지속됩니다.

코드가 있습니다. 무엇이 잘못 되었습니까?

final SeekBar r=(SeekBar)findViewById(R.id.seekBar3); 
    final SeekBar g=(SeekBar)findViewById(R.id.seekBar4); 
    final SeekBar b=(SeekBar)findViewById(R.id.seekBar5); 
    r.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
     @Override 
     public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 
      seekr = r.getProgress(); 
      seekg = g.getProgress(); 
      seekb = b.getProgress(); 

      button1.setBackgroundColor(
        0xff000000 
          + seekr * 0x10000 
          + seekg * 0x100 
          + seekb 
      ); 

      button2.setBackgroundColor(
        0xff000000 
          + seekr * 0x10000 
          + seekg * 0x100 
          + seekb 
      ); 


     } 

     @Override 
     public void onStartTrackingTouch(SeekBar seekBar) { 

      //mplayer.start(); 
     } 

     @Override 
     public void onStopTrackingTouch(SeekBar seekBar) { 
      //mplayer.stop(); 

     } 
    }); 

    g.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
     @Override 
     public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 
      seekr = r.getProgress(); 
      seekg = g.getProgress(); 
      seekb = b.getProgress(); 
      button1.setBackgroundColor(
        0xff000000 
          + seekr * 0x10000 
          + seekg * 0x100 
          + seekb 
      ); 
      button2.setBackgroundColor(
        0xff000000 
          + seekr * 0x10000 
          + seekg * 0x100 
          + seekb 
      ); 


     } 

     @Override 
     public void onStartTrackingTouch(SeekBar seekBar) { 

      //mplayer.start(); 
     } 

     @Override 
     public void onStopTrackingTouch(SeekBar seekBar) { 
      //mplayer.stop(); 

     } 
    }); 
    b.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
     @Override 
     public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 
      seekr = r.getProgress(); 
      seekg = g.getProgress(); 
      seekb = b.getProgress(); 
      button1.setBackgroundColor(
        0xff000000 
          + seekr * 0x10000 
          + seekg * 0x100 
          + seekb 
      ); 
      button2.setBackgroundColor(
        0xff000000 
          + seekr * 0x10000 
          + seekg * 0x100 
          + seekb 
      ); 


     } 

     @Override 
     public void onStartTrackingTouch(SeekBar seekBar) { 

      //mplayer.start(); 
     } 

     @Override 
     public void onStopTrackingTouch(SeekBar seekBar) { 
      //mplayer.stop(); 

     } 
    }); 

} 

XML :

<SeekBar 
     android:id="@+id/seekBar3" 
     android:layout_width="305dp" 
     android:layout_height="31dp" 
     tools:layout_editor_absoluteX="59dp" 
     tools:layout_editor_absoluteY="365dp" 
     android:layout_marginTop="25dp" 
     android:layout_below="@+id/button2" 
     android:layout_alignStart="@+id/button" /> 

    <SeekBar 
     android:id="@+id/seekBar4" 
     android:layout_width="309dp" 
     android:layout_height="27dp" 
     tools:layout_editor_absoluteX="59dp" 
     tools:layout_editor_absoluteY="459dp" 
     android:layout_marginTop="30dp" 
     android:layout_below="@+id/seekBar3" 
     android:layout_alignStart="@+id/button" /> 

    <SeekBar 
     android:id="@+id/seekBar5" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignStart="@+id/seekBar4" 
     android:layout_below="@+id/seekBar4" 
     android:layout_marginTop="19dp" 
     android:layout_alignEnd="@+id/seekBar4" /> 
+0

검색 바 xml 파일도 제공해 주시겠습니까? –

+0

완료 @regevavraham –

답변

0

당신은 당신의 검색 막대의 최대 값을 정의해야합니다 귀하의 XML 파일에 android:max="255"를 사용하여 255합니다. 안드로이드 문서에 기록 된대로

: 그것은 100 필요한 경우에 도달 할 때 기본적으로

는 진행 표시 줄은 안드로이드를 사용하여 최대 값 (전체 막대의 값)을 조정할 수 있습니다, 가득 : 최대 속성.