- 浏览: 176131 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
柨灬柨:
:oops: [color=red][list]
[*]
不 ...
Socket通信总结 -
juren007:
你好,我最近遇到一个问题就是NIO下面缓冲区的分包,不知如何解 ...
解决TCP网络传输“粘包”问题 -
s170285:
<script>alert('1');</s ...
使用ViewHolder模式
Android的屏幕亮度好像在2.1+的时候提供了自动调节的功能,所以,如果当开启自动调节功能的时候, 我们进行调节好像是没有一点作用的,这点让我很是无语,结果只有进行判断,看是否开启了屏幕亮度的自动调节功能。
/**
* 判断是否开启了自动亮度调节
*
* @param aContext
* @return
*/
public static boolean isAutoBrightness(ContentResolver aContentResolver) {
boolean automicBrightness = false;
try {
automicBrightness = Settings.System.getInt(aContentResolver,
Settings.System.SCREEN_BRIGHTNESS_MODE) == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;
} catch (SettingNotFoundException e) {
e.printStackTrace();
}
return automicBrightness;
}
然后就是要觉得当前的亮度了,这个就比较纠结了:
/**
* 获取屏幕的亮度
*
* @param activity
* @return
*/
public static int getScreenBrightness(Activity activity) {
int nowBrightnessValue = 0;
ContentResolver resolver = activity.getContentResolver();
try {
nowBrightnessValue = android.provider.Settings.System.getInt(
resolver, Settings.System.SCREEN_BRIGHTNESS);
} catch (Exception e) {
e.printStackTrace();
}
return nowBrightnessValue;
}
那如何修改屏幕的亮度呢?
/**
* 设置亮度
*
* @param activity
* @param brightness
*/
public static void setBrightness(Activity activity, int brightness) {
// Settings.System.putInt(activity.getContentResolver(),
// Settings.System.SCREEN_BRIGHTNESS_MODE,
// Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
WindowManager.LayoutParams lp = activity.getWindow().getAttributes();
lp.screenBrightness = Float.valueOf(brightness) * (1f / 255f);
activity.getWindow().setAttributes(lp);
}
那么,能设置了,但是为什么还是会出现,设置了,没反映呢?
嘿嘿,那是因为,开启了自动调节功能了,那如何关闭呢?这才是最重要的:
/**
* 停止自动亮度调节
*
* @param activity
*/
public static void stopAutoBrightness(Activity activity) {
Settings.System.putInt(activity.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE,
Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
}
能开启,那自然应该能关闭了哟哟,那怎么关闭呢?很简单的:
/**
* 开启亮度自动调节
*
* @param activity
*/
public static void startAutoBrightness(Activity activity) {
Settings.System.putInt(activity.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE,
Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
}
至此,应该说操作亮度的差不多都有了,结束!
哎,本来认为是应该结束了,但是悲剧得是,既然像刚才那样设置的话,只能在当前的activity中有作用,一段退出的时候,会发现毫无作用,悲剧,原来是忘记了保存了。汗!
/**
* 保存亮度设置状态
*
* @param resolver
* @param brightness
*/
public static void saveBrightness(ContentResolver resolver, int brightness) {
Uri uri = android.provider.Settings.System
.getUriFor("screen_brightness");
android.provider.Settings.System.putInt(resolver, "screen_brightness",
brightness);
// resolver.registerContentObserver(uri, true, myContentObserver);
resolver.notifyChange(uri, null);
}
转自:http://www.cnblogs.com/Tiger-Dog/articles/2058033.html
以上是转到,以下是加的。
还要进行授权,否者不能用。
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION"></uses-permission>
<uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission>
注意:授权都放在<manifest></manifest>之间。
(2)只能是Lunch的activity中可用,很纠结。
上网搜了另一种方法
引入了一个包hardware09.jar,在0.9的版本中,android是调用IHardwareService来进行屏幕亮度调整的,但在1.0r2,1.0r1 以后的SDK中却找不到这个类。
这时又要翻出0.9的SDK了,在0.9 SDK中android.os包中有相关类。只要将这些相关类添加到项目类路径中,我们也可以用IHardwareService来调整屏幕亮度了。以下代码G1下测试通过。
/**
* 取得当前用户自定义的屏幕亮度
*/
private int getOldBrightness() {
int brightness;
try {
brightness = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS);
} catch (SettingNotFoundException snfe) {
brightness = 255;
}
return brightness;
}
/**
* 设置屏幕亮度
*/
private void setBrightness(int brightness) {
IHardwareService hardware = IHardwareService.Stub.asInterface(ServiceManager.getService("hardware"));
if (hardware != null) {
try {
hardware.setScreenBacklight(brightness);
} catch (RemoteException e) {
e.printStackTrace();
}
}
}
/**
* 取得当前用户自定义的屏幕亮度
*/
private int getOldBrightness() {
int brightness;
try {
brightness = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS);
} catch (SettingNotFoundException snfe) {
brightness = 255;
}
return brightness;
}
/**
* 设置屏幕亮度
*/
private void setBrightness(int brightness) {
IHardwareService hardware = IHardwareService.Stub.asInterface(ServiceManager.getService("hardware"));
if (hardware != null) {
try {
hardware.setScreenBacklight(brightness);
} catch (RemoteException e) {
e.printStackTrace();
}
}
}
注意brightness的值为0 - 255,0最暗,255最亮。
(IHardwareService包,也就是那个hardware09.jar)
(3)一般性的解决方案:
在tabhost架构的程序中,引用主启动页面的属性,进行设置。
int dispalyBright = android.provider.Settings.System.getInt(getParent().getContentResolver(),
android.provider.Settings.System.SCREEN_BRIGHTNESS,-1);
android.provider.Settings.System
.putInt(
getParent().getContentResolver(),
android.provider.Settings.System.SCREEN_BRIGHTNESS,
temInt);
WindowManager.LayoutParams lp = getParent().getWindow()
.getAttributes();
lp.screenBrightness = temInt / 255f;
/**
* 判断是否开启了自动亮度调节
*
* @param aContext
* @return
*/
public static boolean isAutoBrightness(ContentResolver aContentResolver) {
boolean automicBrightness = false;
try {
automicBrightness = Settings.System.getInt(aContentResolver,
Settings.System.SCREEN_BRIGHTNESS_MODE) == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;
} catch (SettingNotFoundException e) {
e.printStackTrace();
}
return automicBrightness;
}
然后就是要觉得当前的亮度了,这个就比较纠结了:
/**
* 获取屏幕的亮度
*
* @param activity
* @return
*/
public static int getScreenBrightness(Activity activity) {
int nowBrightnessValue = 0;
ContentResolver resolver = activity.getContentResolver();
try {
nowBrightnessValue = android.provider.Settings.System.getInt(
resolver, Settings.System.SCREEN_BRIGHTNESS);
} catch (Exception e) {
e.printStackTrace();
}
return nowBrightnessValue;
}
那如何修改屏幕的亮度呢?
/**
* 设置亮度
*
* @param activity
* @param brightness
*/
public static void setBrightness(Activity activity, int brightness) {
// Settings.System.putInt(activity.getContentResolver(),
// Settings.System.SCREEN_BRIGHTNESS_MODE,
// Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
WindowManager.LayoutParams lp = activity.getWindow().getAttributes();
lp.screenBrightness = Float.valueOf(brightness) * (1f / 255f);
activity.getWindow().setAttributes(lp);
}
那么,能设置了,但是为什么还是会出现,设置了,没反映呢?
嘿嘿,那是因为,开启了自动调节功能了,那如何关闭呢?这才是最重要的:
/**
* 停止自动亮度调节
*
* @param activity
*/
public static void stopAutoBrightness(Activity activity) {
Settings.System.putInt(activity.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE,
Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
}
能开启,那自然应该能关闭了哟哟,那怎么关闭呢?很简单的:
/**
* 开启亮度自动调节
*
* @param activity
*/
public static void startAutoBrightness(Activity activity) {
Settings.System.putInt(activity.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE,
Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
}
至此,应该说操作亮度的差不多都有了,结束!
哎,本来认为是应该结束了,但是悲剧得是,既然像刚才那样设置的话,只能在当前的activity中有作用,一段退出的时候,会发现毫无作用,悲剧,原来是忘记了保存了。汗!
/**
* 保存亮度设置状态
*
* @param resolver
* @param brightness
*/
public static void saveBrightness(ContentResolver resolver, int brightness) {
Uri uri = android.provider.Settings.System
.getUriFor("screen_brightness");
android.provider.Settings.System.putInt(resolver, "screen_brightness",
brightness);
// resolver.registerContentObserver(uri, true, myContentObserver);
resolver.notifyChange(uri, null);
}
转自:http://www.cnblogs.com/Tiger-Dog/articles/2058033.html
以上是转到,以下是加的。
还要进行授权,否者不能用。
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION"></uses-permission>
<uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission>
注意:授权都放在<manifest></manifest>之间。
(2)只能是Lunch的activity中可用,很纠结。
上网搜了另一种方法
引入了一个包hardware09.jar,在0.9的版本中,android是调用IHardwareService来进行屏幕亮度调整的,但在1.0r2,1.0r1 以后的SDK中却找不到这个类。
这时又要翻出0.9的SDK了,在0.9 SDK中android.os包中有相关类。只要将这些相关类添加到项目类路径中,我们也可以用IHardwareService来调整屏幕亮度了。以下代码G1下测试通过。
/**
* 取得当前用户自定义的屏幕亮度
*/
private int getOldBrightness() {
int brightness;
try {
brightness = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS);
} catch (SettingNotFoundException snfe) {
brightness = 255;
}
return brightness;
}
/**
* 设置屏幕亮度
*/
private void setBrightness(int brightness) {
IHardwareService hardware = IHardwareService.Stub.asInterface(ServiceManager.getService("hardware"));
if (hardware != null) {
try {
hardware.setScreenBacklight(brightness);
} catch (RemoteException e) {
e.printStackTrace();
}
}
}
/**
* 取得当前用户自定义的屏幕亮度
*/
private int getOldBrightness() {
int brightness;
try {
brightness = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS);
} catch (SettingNotFoundException snfe) {
brightness = 255;
}
return brightness;
}
/**
* 设置屏幕亮度
*/
private void setBrightness(int brightness) {
IHardwareService hardware = IHardwareService.Stub.asInterface(ServiceManager.getService("hardware"));
if (hardware != null) {
try {
hardware.setScreenBacklight(brightness);
} catch (RemoteException e) {
e.printStackTrace();
}
}
}
注意brightness的值为0 - 255,0最暗,255最亮。
(IHardwareService包,也就是那个hardware09.jar)
(3)一般性的解决方案:
在tabhost架构的程序中,引用主启动页面的属性,进行设置。
int dispalyBright = android.provider.Settings.System.getInt(getParent().getContentResolver(),
android.provider.Settings.System.SCREEN_BRIGHTNESS,-1);
android.provider.Settings.System
.putInt(
getParent().getContentResolver(),
android.provider.Settings.System.SCREEN_BRIGHTNESS,
temInt);
WindowManager.LayoutParams lp = getParent().getWindow()
.getAttributes();
lp.screenBrightness = temInt / 255f;
发表评论
-
[Android][Activity] onCreate, onSaveInstanceState和onRestoreInstanceState的调用探讨
2011-12-08 16:19 2888(转)http://blog.csdn.net/leewind ... -
android XML转义字符
2011-11-24 19:10 1906在XML中写字符串时,可能需要在字符串后面加空格,A_B(中间 ... -
EditText添加失去焦点事件
2011-11-21 20:29 29008有这样的情况,就是文本框(EditText)会随着某个Butt ... -
Android图片缩放方法
2011-11-21 16:45 871方法1:按固定比例进行 ... -
Activity(Intent)回传数据详解 startActivityForResult()
2011-11-20 12:04 9424startActivityForResult()的用法其实很简 ... -
Intent用法示例
2011-11-12 17:20 1808Intent用法实例 1.无参数Activity跳转 In ... -
andriod优秀开源项目
2011-10-19 16:56 1752FBReaderJ FBReaderJ用于Android平台 ... -
Android 应用程序版本
2011-10-19 16:25 815在应用程序的 升级/维护 策略中, 版本是一个关键的组成部分. ... -
[Android UI界面] 连续点击Button,弹出多个Dialog
2011-10-18 19:13 4605首先,你要定义一个全局的Dialog。然后,在点击时间里面判断 ... -
Android webview总结
2011-10-13 14:59 926总结 1.添加权限:AndroidManifest.xml 中 ... -
Android获取IMEI码
2011-10-11 00:07 1608相比大家都知道,每部手机都有一个属于自己的字符串,这个字符串是 ... -
使用Timer定时改变view控件的状态
2011-10-10 22:52 1248//1.声明timer private Timer mTim ... -
Android xml风格和主题
2011-10-08 19:23 964(转)http://www.cnblogs.c ... -
使用全局变量
2011-10-07 10:20 1197如想在整个应用中使用,在java中一般是使用静态变量,而在an ... -
android定义数组
2011-09-09 09:42 13195在android中创建数组,直接定义xml文件即可以。 (1 ... -
Android工程各文件夹结构的含义及使用
2011-09-08 11:06 12398对Android这些东西一开始 ... -
Android解析XML的方式
2011-09-08 10:46 3512android解析xml文件的方式 ... -
android框架
2011-09-07 17:48 678读了高焕堂的书,觉得不错。选点自以为重要的知识,放在这里 ... -
android常识
2011-09-07 15:45 7851.mnt/sdcard和sdcard的区别 其实mnt/sd ... -
使用ViewHolder模式
2011-08-31 14:30 10558ViewHolder不是Android的开发API,而是一种设 ...
相关推荐
在Android平台上,开发者可以利用系统提供的API来实现对设备...以上就是关于"Android Studio 屏幕亮度调节"的知识点,这个Demo提供了一个基础的框架,你可以根据实际需求进行扩展和优化,以满足更复杂的亮度控制需求。
下面,我们将深入探讨Android屏幕亮度调节的源代码及其相关知识点。 首先,我们需要理解Android中的`WindowManager.LayoutParams`类,它包含了窗口参数,其中包括了屏幕亮度的设置。`LayoutParams`中的`...
在Android开发中,控制屏幕亮度是一项常见的功能,无论是为了优化用户体验,还是为了适应不同环境下的设备使用。本文将深入探讨如何通过编程方式实现对当前应用和整个系统的亮度调节。 首先,我们要了解Android系统...
本文将深入探讨Android屏幕亮度调节的源码实现,帮助开发者理解其工作原理,并为自定义和优化这一功能提供基础。 首先,Android系统通过硬件抽象层(HAL)与设备的显示控制器进行交互,来控制屏幕亮度。在`...
在Android平台上,开发一款能够调节屏幕亮度的应用是一个常见的需求,特别是在关注用户体验和视力保护的场景下,例如夜间阅读。这个“Android调节屏幕亮度demo”项目就是为此目的而设计的。它利用Android SDK提供的...
“Android-滑动屏幕调整屏幕亮度.zip”是一个包含了多个文件的压缩包,它可能包含源代码、相关文档和资源文件,这些内容共同构成了一个功能模块,允许用户通过滑动屏幕来调整屏幕亮度。这个功能模块可能是一个独立的...
在Android应用开发中,我们可以通过编程的方式实现对当前应用或全局系统屏幕亮度的控制。以下将详细讲解如何在Android中进行屏幕亮度调节。 首先,Android系统提供了两种方式来调整屏幕亮度:一种是针对当前应用的...
这个压缩包文件"Android项目滑动屏幕调整屏幕亮度.rar"包含了实现这一功能的源码,是学习和理解Android自定义手势控制的一个良好实践。 首先,我们要了解Android系统是如何管理屏幕亮度的。Android系统通过`...
首先,我们需要了解Android系统中的亮度控制接口。Android提供了`WindowManager.LayoutParams`类,它包含了一个`screenBrightness`属性,用于设置窗口的亮度。当用户滑动屏幕时,我们可以监听滑动事件,然后根据滑动...
10. **Android组件通信**:理解Activity、Service、BroadcastReceiver等组件间的通信方式,可能会在实际项目中实现屏幕亮度控制的其他功能时派上用场。 通过对这份源码的学习,开发者可以深入理解Android系统服务的...
"Android手势调节亮度和音量"这一特性允许用户通过简单的滑动手势来调整设备的屏幕亮度和音量,大大提升了操作的便利性。下面将详细阐述这一功能的实现原理、应用场景以及相关开发技术。 首先,我们要理解Android...
在安卓(Android)系统中,滑动屏幕调整屏幕亮度是一项常见的用户交互功能,它允许用户通过在屏幕顶部或底部边缘上下滑动来改变设备的显示亮度。这一特性涉及到Android系统的触摸事件处理、电源管理以及图形界面等多...
首先,我们需要理解Android系统的亮度控制机制。Android系统提供了`WindowManager.LayoutParams`类,其中包含了`screenBrightness`属性,用于设置窗口的亮度。这个属性的值范围是0.0(全暗)到1.0(全亮),默认值由...
在Android系统中,屏幕亮度调节是一项重要的功能,它关乎用户体验和设备功耗。本文将深入探讨如何实现Android设备的屏幕亮度自动调节,以及涉及到的关键组件和流程。 首先,我们要理解屏幕亮度自动调节的核心原理,...
2. **搜索功能集成**:除了基本的音量和亮度控制,Swipper还支持集成搜索功能。用户可以设置特定的滑动手势触发全局搜索,这对于那些需要频繁搜索的应用来说是一个非常实用的功能。 3. **高度自定义**:Swipper库...
在Android平台上,调整设备屏幕亮度是一项常见的功能,尤其对于用户来说,可以根据环境光线和个人喜好来定制屏幕显示的亮度。在给定的`BrightnessDemo`项目中,我们可以学习如何实现这一功能。下面,我们将深入探讨...
屏幕亮度控制着显示屏的明暗程度,而Alpha值则关乎到视图或控件的透明度。以下是对这两个概念的详细解释以及如何在Android应用中进行设置。 **一、屏幕亮度设置** 屏幕亮度调整在Android设备上主要通过调节屏幕...
首先,我们要了解Android系统中控制屏幕亮度的基本原理。Android系统通过`Settings.System.SCREEN_BRIGHTNESS`这个系统设置来控制屏幕亮度。当用户手动调整亮度时,系统会更新这个设置值。为了实现在屏幕上滑动调整...
在Android系统中,背光亮度控制是用户体验的重要组成部分,它直接影响到设备的视觉舒适度和电池寿命。"Android调试背光亮度曲线-斜线"这个主题聚焦于如何调整和优化设备的背光亮度曲线,使其更符合用户需求或提高...