好记性不如铅笔头

android, 编程

android应用开发笔记:获取和设置屏幕的亮度

我们可以通过代码来实现设置android的屏幕亮度,这里简单备忘一下:

public class ScreenBrightnessUtils
{
	public void openSettingAct(Context context)
	{
		//http://developer.android.com/reference/android/provider/Settings.html#ACTION_DISPLAY_SETTINGS
		Intent intent = new Intent(Settings.ACTION_DISPLAY_SETTINGS);
		context.startActivity(intent);
	}
	
	
	// 判断是否开启了自动亮度调节
	public static boolean isAutoBrightness(Activity act)
	{
		boolean automicBrightness = false;
		ContentResolver aContentResolver = act.getContentResolver();
		try
		{
			automicBrightness = Settings.System.getInt(aContentResolver, Settings.System.SCREEN_BRIGHTNESS_MODE) == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;
		}
		catch (Exception e)
		{
		}
		return automicBrightness;
	}

	// 改变亮度
	public static void setLightnessA(Context context,int value)
	{
		try
		{
			Settings.System.putInt(context.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, value);
		}
		catch (Exception e)
		{
		}
	}
	// 改变亮度
	public static void setLightnessB(Activity act, int value)
	{
		try
		{
			Settings.System.putInt(act.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, value);
			
			WindowManager.LayoutParams lp = act.getWindow().getAttributes();
			lp.screenBrightness = (value <= 0 ? 1 : value) / 255f;
			act.getWindow().setAttributes(lp);
		}
		catch (Exception e)
		{
		}
	}

	// 获取亮度
	public static int getLightness(Activity act)
	{
		return Settings.System.getInt(act.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, -1);
	}

	// 停止自动亮度调节
	public static void stopAutoBrightness(Activity activity)
	{
		Settings.System.putInt(activity.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
	}

	// 开启亮度自动调节
	public static void startAutoBrightness(Activity activity)
	{
		Settings.System.putInt(activity.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
	}
}

CONTENTS

XML:

<uses-permission android:name="android.permission.WRITE_SETTINGS" />

 备注:

1)改变亮度有2个方法,输入值范围为【0,255】。有两个的原因是作者用手机测试了一下,发现各个手机的情况不一样。具体还要在项目中测试。

发表评论

9 − 1 =

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据