繁体   English   中英

使用SeekBars时,RGB刻度不完整

[英]RGB scale isn't complete using SeekBars

我创建了一个简单的项目,它使用连接到声音的SeekBars并连接到按钮的颜色。

我没有声音问题,但有RGB色标。 我写了代码但是当我在手机上安装apk时,我发现了一个错误。 当我将光标移动到结尾时,色标不完整,如下所示:

在此输入图像描述

如果您看到,比例不在其颜色范围的末尾。 其他两个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" />

您应该在xml文件中使用android:max="255"将搜索条的最大值定义为255。

正如在android文档中写的:

默认情况下,进度条在达到100时已满。如有必要,您可以使用android:max属性调整最大值(完整条的值)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM