編輯:關於Android編程
程序主要有兩個功能,一是護眼燈,二是手電筒,然而手電筒兼容性解決辦法就是加入異常控制,避免各種異常占用啟動不了手電筒.
程序主界面,沒有美化,只實現基本功能.
部分代碼:
護眼蒙板主要代碼
private void CreateView() {
mWindowManager = (WindowManager) getApplication()
.getSystemService(Context.WINDOW_SERVICE);
wmParams = new WindowManager.LayoutParams();
// 電話窗口。它用於電話交互(特別是呼入)。它置於所有應用程序之上,狀態欄之下。
wmParams.type = WindowManager.LayoutParams.TYPE_PHONE;
//設置圖片格式,效果為背景透明
wmParams.format = PixelFormat.RGBA_8888;
// 設置浮動窗口不可聚焦(實現操作除浮動窗口外的其他可見窗口的操作)
wmParams.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;
//調整懸浮窗顯示的停靠位置為左側置頂
wmParams.gravity = Gravity.LEFT | Gravity.TOP;
wmParams.x = 0;
wmParams.y = 0;
//設置懸浮窗口長寬數據
wmParams.width = WindowManager.LayoutParams.MATCH_PARENT;
wmParams.height = WindowManager.LayoutParams.MATCH_PARENT;
v = new MyView(getApplicationContext());
mWindowManager.addView(v, wmParams);
}
手電筒主要代碼
/**
* 打開或者關閉手電筒
*/
private View.OnClickListener flash = new View.OnClickListener() {
@Override
public void onClick(View v) {
// 先判斷是否有閃光燈
if (!getPackageManager().hasSystemFeature(
PackageManager.FEATURE_CAMERA_FLASH)) {
Toast.makeText(MainActivity.this, 當前設備沒有閃關燈, Toast.LENGTH_LONG).show();
return;
}
if (flashstate){
close();
btnstartflash.setText(開啟手電筒);
}else if (!flashstate){
open();
btnstartflash.setText(關閉手電筒);
}
}
};
private void initflashmode() {
try {
camera = Camera.open();
camera.setPreviewTexture(new SurfaceTexture(0));
} catch (IOException e) {
close();
}
if (camera != null) {
parameters = camera.getParameters();
previousflashmode = parameters.getFlashMode();
}
if (previousflashmode == null) {
previousflashmode = Camera.Parameters.FLASH_MODE_OFF;
}
}
//關閉相機
private void close() {
if (camera!=null){
parameters.setFlashMode(previousflashmode);
camera.setParameters(parameters);
camera.release();
camera = null;
flashstate = false;
}
}
//打開相機
private void open(){
if (camera==null) {
initflashmode();
}
if (camera!=null){
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(parameters);
camera.startPreview();
flashstate = true;
}
}
微信中刪除的聊天記錄如何找回?相信大家都有過誤刪了重要的微信聊天記錄而在那裡拼命懊悔的經歷,那都是因為沒有找到一個很好的解決方法。其實在科技如此發達的今天,
之前在eclipse上顯示百度地圖的時候並沒有發生什麼不愉快的事,但是AS上簡直是RI了DOG。我簡直不能忍Baidu地圖API文檔,丑陋至極。1、新建一個項目,名為Ba
我認為在寫涉及到數據結構或算法的實現類的源碼解析博客時,不應該急於講它的使用或馬上展開對源碼的解析,而是要先交待一下這個數據結構或算法的資料,了解它的設計,再從它的設計
在發現這個類之前,一直是用的handler,子線程發消息,UI線程進行倒計時的顯示工作。前幾天在做一個倒計時顯示的時候發現了這個類,用起來很方便 翻看了下源碼,內部已經幫