Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用SeekBar更改图像透明度_Java_Android Studio - Fatal编程技术网

Java 使用SeekBar更改图像透明度

Java 使用SeekBar更改图像透明度,java,android-studio,Java,Android Studio,我必须做一个Android Studio项目,它必须使用SeekBar更改ImageView的透明度 我有这个计划: import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.ImageView; import android.widget.SeekBar; import android.widget.Toast; public class MainActiv

我必须做一个Android Studio项目,它必须使用SeekBar更改ImageView的透明度

我有这个计划:

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.SeekBar;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    private int seekTransparent;
    ImageView color;
    SeekBar seekBarTransparent;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        color = (ImageView)findViewById(R.id.changeColor);
        seekBarTransparent = (SeekBar) findViewById(R.id.seekBar);
        updateNow();


        seekBarTransparent.setOnSeekBarChangeListener(seekBarChangeListener);

    }

    private SeekBar.OnSeekBarChangeListener seekBarChangeListener = new 
SeekBar.OnSeekBarChangeListener() {


        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean 
fromUser) {
            updateNow();
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
             Toast.makeText(getApplicationContext(), "toast in uso", 
Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            Toast.makeText(getApplicationContext(), "toast non in uso", 
Toast.LENGTH_SHORT).show();
        }
    };

        private void updateNow(){
            seekTransparent = seekBarTransparent.getProgress();
        color.getBackground().setAlpha(192 + seekTransparent * 0x10000);

    }
}

我运行该应用程序,但在我的智能手机上它无法工作。任何人都可以帮助我?

这是seekbar的xml

<SeekBar
            android:id="@+id/opacitybar"
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:max="10"
            android:progress="10"
            android:layout_alignTop="@+id/opacitylbl"
            android:layout_centerHorizontal="true" />

如果要设置背景的alpha而不是图像,则可以更改值。尝试
color.setImageAlpha()
。此外,alpha的范围应为0-255。
 logoseekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
        int opacity = 100; // from 0 to 255
        @Override
        public void onProgressChanged(SeekBar seekBar, int progresValue, boolean fromUser) {
            im_move_zoom_rotate.setAlpha(progresValue * 25);

        }
        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {

        }
        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {

        }

    });