我想根据光线改变屏幕的亮度..
我找到了获取亮度级别和设置亮度的链接.
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中的周围光线改变亮度所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)