根据android中的周围光线改变亮度

根据android中的周围光线改变亮度,第1张

概述我想根据光线改变屏幕的亮度..我找到了获取亮度级别和设置亮度的链接.ChangescreenbrightnessonPause(Androidapp)Howtotoggleautobrightnessonandoff?(notarepeat)changingscreenbrightnessprogrammaticallyinandroidChangingscreenbrightnessprogram

我想根据光线改变屏幕的亮度..

我找到了获取亮度级别和设置亮度的链接.

Change screen brightness onPause (Android app)

How to toggle auto brightness on and off? (not a repeat)

changing screen brightness programmatically in android

Changing screen brightness programmatically (as with the power widget)

但我想根据周围的光线改变亮度.
总之,我想做与自动亮度相同的工作..

如何检测周围光线?或者我可以触发自动亮度功能??

亮度的值范围在0到255之间.
我想根据周围的光线水平设置亮度等级,不能是0到255.如何获得这两者之间的比例.

需要帮助.谢谢

解决方法:

自己的解决方案:

我从here开始实施摇动监听器.
我也使用了aboce链接来完成它.

我创建了ShakeBrightService.java

public class ShakeBrightService extends Service {private ShakeDetector shakeBrightDetector = new ShakeDetector();@OverrIDepublic voID onCreate() {    super.onCreate();}@OverrIDepublic int onStartCommand(Intent intent, int flags, int startID) {    shakeBrightDetector.stop();    shakeBrightDetector.start(this, shakeBrightEventListener);    return super.onStartCommand(intent, flags, startID);}private ShakeEventListener shakeBrightEventListener = new ShakeEventListener() {    @OverrIDe    public voID onShake() {        setautoBrightness(true);    }};@OverrIDepublic IBinder onBind(Intent intent) {    return null;}private voID setautoBrightness(boolean value) {    Toast.makeText(getApplicationContext(), "autoBrightness : " + value,            Toast.LENGTH_SHORT).show();    if (value) {        Settings.System.putInt(getContentResolver(),                Settings.System.SCREEN_BRIGHTnesS_MODE,                Settings.System.SCREEN_BRIGHTnesS_MODE_autoMATIC);    } else {        Settings.System.putInt(getContentResolver(),                Settings.System.SCREEN_BRIGHTnesS_MODE,                Settings.System.SCREEN_BRIGHTnesS_MODE_MANUAL);    }    Intent i = new Intent(getApplicationContext(), MainActivity1.class);    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);    startActivity(i);   }}

假装让人耳目一新
MainActivity1.java

public class MainActivity1 extends Activity {@OverrIDeprotected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    requestwindowFeature(Window.FEATURE_NO_Title);    getwindow().setFlags(WindowManager.LayoutParams.FLAG_FulLSCREEN,            WindowManager.LayoutParams.FLAG_FulLSCREEN);    setContentVIEw(R.layout.activity_main1);    refreshBrightness(getBrightnessLevel());    Thread t = new Thread() {        public voID run() {            try {                sleep(10);            } catch (InterruptedException e) {            }            finish();        }    };    t.start();}private voID refreshBrightness(float brightness) {    WindowManager.LayoutParams lp = getwindow().getAttributes();    if (brightness < 0) {        lp.screenBrightness = WindowManager.LayoutParams.BRIGHTnesS_OVERRIDE_NONE;    } else {        lp.screenBrightness = brightness;    }    getwindow().setAttributes(lp);}int getBrightnessLevel() {    try {        int value = Settings.System.getInt(getContentResolver(),                Settings.System.SCREEN_BRIGHTnesS);        // convert brightness level to range 0..1        value = value / 255;        return value;    } catch (SettingNotFoundException e) {        return 0;    }}

FakeActivity有主题androID:theme =“@ androID:style / theme.Translucent.NoTitlebar”,因此默默地改变了亮度.

总结

以上是内存溢出为你收集整理的根据android中的周围光线改变亮度全部内容,希望文章能够帮你解决根据android中的周围光线改变亮度所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1102504.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存