編輯:Android開發實例
應用場景:手機上有一張條形碼圖片,需要用掃碼設備掃描。當手機屏幕太暗時,識別度低,因此我就想當切換到條形碼圖片所在的界面時,調亮屏幕方便掃碼設備識別。當離開該界面時恢復用戶原來設置的屏幕亮度調節模式和屏幕亮度值。
一、存儲當前屏幕亮度調節模式值和屏幕亮度值:
- /*
- * 獲得當前屏幕亮度的模式
- * SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1 為自動調節屏幕亮度
- * SCREEN_BRIGHTNESS_MODE_MANUAL=0 為手動調節屏幕亮度
- */
- screenMode = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE);
- Log.i(TAG, "screenMode = " + screenMode);
- // 獲得當前屏幕亮度值 0--255
- screenBrightness = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS);
- Log.i(TAG, "screenBrightness = " + screenBrightness);
二、改變當前屏幕亮度調節模式值和屏幕亮度值:
- // 如果當前的屏幕亮度調節調節模式為自動調節,則改為手動調節屏幕亮度
- if(screenMode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC){
- setScreenMode(Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
- }
- // 設置屏幕亮度值為最大值255
- setScreenBrightness(255.0F);
三、離開時恢復當前屏幕亮度調節模式值和屏幕亮度值:
- // 設置屏幕亮度值為原來的
- setScreenBrightness(screenBrightness);
- // 設置當前屏幕亮度的模式 為原來的
- setScreenMode(screenMode);
四、所需權限:
- <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
五、完整代碼:
- package com.easipass.setting.screen.luminance;
- import android.app.Activity;
- import android.os.Bundle;
- import android.provider.Settings;
- import android.provider.Settings.SettingNotFoundException;
- import android.util.Log;
- import android.view.View;
- import android.view.Window;
- import android.view.WindowManager;
- /**
- * 功能描述:設置與恢復當前的屏幕亮度調節模式和屏幕亮度值
- *
- * @author android_ls
- */
- public class SettingScreenLuminanceActivity extends Activity {
- private static final String TAG = "ScreenLuminance";
- /**
- * 當前屏幕亮度的模式
- */
- private int screenMode;
- /**
- * 當前屏幕亮度值 0--255
- */
- private int screenBrightness;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- // 調亮屏幕到指定的值
- super.findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- try {
- /*
- * 獲得當前屏幕亮度的模式
- * SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1 為自動調節屏幕亮度
- * SCREEN_BRIGHTNESS_MODE_MANUAL=0 為手動調節屏幕亮度
- */
- screenMode = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE);
- Log.i(TAG, "screenMode = " + screenMode);
- // 獲得當前屏幕亮度值 0--255
- screenBrightness = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS);
- Log.i(TAG, "screenBrightness = " + screenBrightness);
- // 如果當前的屏幕亮度調節調節模式為自動調節,則改為手動調節屏幕亮度
- if (screenMode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) {
- setScreenMode(Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
- }
- // 設置屏幕亮度值為最大值255
- setScreenBrightness(255.0F);
- } catch (SettingNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- });
- // 恢復原來的亮度
- super.findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- // 設置屏幕亮度值為原來的
- setScreenBrightness(screenBrightness);
- // 設置當前屏幕亮度的模式 為原來的
- setScreenMode(screenMode);
- }
- });
- }
- /**
- * 設置當前屏幕亮度的模式
- * SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1 為自動調節屏幕亮度
- * SCREEN_BRIGHTNESS_MODE_MANUAL=0 為手動調節屏幕亮度
- */
- private void setScreenMode(int value) {
- Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, value);
- }
- /**
- * 設置當前屏幕亮度值 0--255,並使之生效
- */
- private void setScreenBrightness(float value) {
- Window mWindow = getWindow();
- WindowManager.LayoutParams mParams = mWindow.getAttributes();
- float f = value / 255.0F;
- mParams.screenBrightness = f;
- mWindow.setAttributes(mParams);
- // 保存設置的屏幕亮度值
- Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, (int) value);
- }
- }
另外特別提示:直接用 getWindow().setAttributes(WindowManager.LayoutParams) 可以只改變當前窗口的亮度,不影響系統設置。
轉自:http://blog.csdn.net/android_ls/article/details/8678313
登錄應用程序的屏幕,詢問憑據登錄到一些特定的應用。可能需要登錄到Facebook,微博等本章介紹了,如何創建一個登錄界面,以及如何管理安全問題和錯誤嘗試。首先,必須定義兩
JSON代表JavaScript對象符號。它是一個獨立的數據交換格式,是XML的最佳替代品。本章介紹了如何解析JSON文件,並從中提取所需的信息。Android提供了四個
可以顯示在的Android任務,通過加載進度條的進展。進度條有兩種形狀。加載欄和加載微調(spinner)。在本章中,我們將討論微調(spinner)。Spinner 用
在Android中使用ImageView顯示圖片的時候發現圖片顯示不正,方向偏了或者倒過來了。 解決這個問題很自然想到的分兩步走: 1、自動識別圖像方向,計算旋轉