編輯:關於Android編程
Android 播放器中修改系統亮度
/**
* 播放器Activity
*/
public class PlayerActivity extends Activity {
/**
* 系統是否自動調節亮度
*/
private boolean isAutoBrightness = false;
/**
* 系統亮度變化值
*/
private static final int SYSTEM_BRIGHTNESS_CHANGE_VALUES = 25;
/**
* 最大系統音量值
*/
private static final int MAX_SYSTEM_BRIGHTNESS_VALUES = 255;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/**
* 打開播放器界面判斷系統是否設置了自動亮度
* 設置系統亮度時如果系統亮度設置了自動亮度,需要先關閉自動亮度
*/
isAutoBrightness = DeviceUtil.isAutoBrightness(this);
if (isAutoBrightness) {
DeviceUtil.stopAutoBrightness(this);
}
}
@Override
protected void onResume() {
/*
* 播放器請求屏幕常亮需要寫在onResume方法中,如果寫在onCreate()方法中,
* 用戶在播放時按HOME後,再次回到播放器,屏幕常亮失敗
*/
DeviceUtil.requireScreenOn(this);
/**
* 解決用戶按HOME後回到播放器亮度模式為自動亮度 重新方法:(自動亮度打開PlayerActivity--> 按HOME --> (進入系統設置此時
* 系統亮度為非自動亮度)修改為自動亮度 --> 回到播放器)
*/
isAutoBrightness = DeviceUtil.isAutoBrightness(this);
if (isAutoBrightness) {
DeviceUtil.stopAutoBrightness(this);
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
int currSettingBrighiness = DeviceUtil.getSystemScreenBrightness(this);
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_UP:
// 系統亮度加
addSystemBrighiness(currSettingBrighiness);
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
// 系統亮度減
minusSystemBrighiness(currSettingBrighiness);
break;
default:
break;
}
return super.onKeyDown(keyCode, event);
}
/**
* 系統亮度加
*
* @param currSettingBrighiness
* 系統當前亮度
*/
private void addSystemBrighiness(int currSettingBrighiness) {
if (currSettingBrighiness < MAX_SYSTEM_BRIGHTNESS_VALUES
&& (currSettingBrighiness + SYSTEM_BRIGHTNESS_CHANGE_VALUES) < MAX_SYSTEM_BRIGHTNESS_VALUES) {
setSystemBrighiness = currSettingBrighiness
+ SYSTEM_BRIGHTNESS_CHANGE_VALUES;
DeviceUtil.setSystemScreenBrightness(this, setSystemBrighiness);
}
}
/**
* 系統亮度減
*
* @param currSettingBrighiness
* 系統當前亮度
*/
public void minusSystemBrighiness(int currSettingBrighiness) {
if (currSettingBrighiness >= SYSTEM_BRIGHTNESS_CHANGE_VALUES) {
setSystemBrighiness = currSettingBrighiness
- SYSTEM_BRIGHTNESS_CHANGE_VALUES;
DeviceUtil.setSystemScreenBrightness(this, setSystemBrighiness);
}
}
}
/**
* DeviceUtil 工具類
*/
public class DeviceUtil {
/**
* 獲取系統亮度
* 取值在(0 -- 255)之間
*/
public static int getSystemScreenBrightness(Context context) {
int values = 0;
try {
values = Settings.System.getInt(context.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS);
} catch (SettingNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return values;
}
/**
* 設置系統亮度
* @param systemBrightness 返回的亮度值是處於0-255之間的整型數值
*/
public static boolean setSystemScreenBrightness(Context context, int systemBrightness) {
return Settings.System.putInt(context.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS,systemBrightness);
}
/**
* 系統是否自動調節亮度
* return true 是自動調節亮度 return false 不是自動調節亮度
*/
public static boolean isAutoBrightness(Activity activity){
int autoBrightness = Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;
try {
autoBrightness = Settings.System.getInt(activity.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE);
} catch (SettingNotFoundException e) {
e.printStackTrace();
}
if (autoBrightness == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) {
return true;
} else {
return false;
}
}
/**
* 關閉系統自動調節亮度
*/
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);
}
/**
* 請求屏幕常亮
* @param activity
*/
public static void requireScreenOn(Activity activity){
activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
/**
* 取消屏幕常亮
* @param activity
*/
public static void releaseScreenOn(Activity activity){
activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
}
Android經典面試題總結(未完待續)
1.生命周期場景演示 : 切換到該Fragment11-29 14:26:35.095: D/AppListFragment(7649): onAttach11-29 1
Android 數據存儲詳解(SharedPreferences, 文件, Sqlite, ContentProvider)
文章大部分內容來自 < < Android開發全程實錄 > >, 希望大家能看看原書SharedPreferences shareprefere
Android 設置透明背景
1.style.xml @color/transparent true true 2.color.xml #00000000 3.AndroidManifest.x
Android基礎入門教程——2.4.8 ListView Item多布局的實現
Android基礎入門教程——2.4.8 ListView Item多布局的實現標簽(空格分隔): Android基礎入門教程本節引言: 本節是L