控制屏幕亮度

   public void setScreenBrightness(BaseActivity activity, float value) {
        WindowManager.LayoutParams params = activity.getWindow().getAttributes();
        params.screenBrightness = value;//0-255
        activity.getWindow().setAttributes(params);
    }

    //手指按下的点为(x1, y1)手指离开屏幕的点为(x2, y2)
    float x1 = 0;
    float x2 = 0;
    float y1 = 0;
    float y2 = 0;
    int count;


    @Override
    public boolean onTouchEvent(MotionEvent event) {
        int action = event.getAction();
        brightRl = (RelativeLayout) findViewById(R.id.brightRl);
        switch (action) {
            case MotionEvent.ACTION_DOWN:
                //当手指按下的时候
                x1 = event.getX();
                y1 = event.getY();
                audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
                currentVolue = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
                if (count == 0) {
                    screenBrightness = 0.3f;
                } else {
                    screenBrightness = getWindow().getAttributes().screenBrightness;//系统默认的亮度为-1
                }
                count++;
                break;
            case MotionEvent.ACTION_MOVE:
                //当手指离开的时候
                x2 = event.getX();
                y2 = event.getY();
                float count = y1 - y2;
                float dif = Math.abs(count);
                float titleHeight = getResources().getDimension(R.dimen.titleHeight);
                if (dif > 50 && y1 > titleHeight) {
                    ImageView brighticon = (ImageView) findViewById(R.id.brighticon);
                    brightValue = (TextView) findViewById(R.id.brightValue);
                    brightRl.setVisibility(View.VISIBLE);
                    if (x1 < windownWidth / 2) {
                        brighticon.setImageResource(R.drawable.bright);
                        float currentBrightness = screenBrightness + (count / windownHeight);
                        if (currentBrightness < 0.0f) {
                            currentBrightness = 0.0f;
                        } else if (currentBrightness > 1.0f) {
                            currentBrightness = 1.0f;
                        }
                        int light = (int) ((currentBrightness) * 100);
                        brightValue.setText(light + "%");
                        setScreenBrightness(this, currentBrightness);
                    } else {
                        brighticon.setImageResource(R.drawable.music);
                        int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);//最大15
                        int volue = currentVolue + (int) ((count / windownHeight) * maxVolume);
                        if (volue < 0) {
                            volue = 0;
                        } else if (volue > maxVolume) {
                            volue = maxVolume;
                        }
                        brightValue.setText((volue * 100) / maxVolume + "%");
                        audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, volue, 0);//设置声音大小
                    }


                }
                break;
            case MotionEvent.ACTION_UP:
                brightRl.setVisibility(View.GONE);
                break;
        }
        return super.onTouchEvent(event);
    }
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值