1. 程式人生 > >Android --- 常用的系統服務(二)

Android --- 常用的系統服務(二)

目前涉及的互動視窗Activity、 Dialog

WindowManager視窗管理器

可以完成視窗的顯示、 更新、 銷燬的處理

獲取視窗管理器物件.

private WindowManager wm;
...

//獲取物件
wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);

初始化視窗的顯示效果, 需要依賴於WindowManager.LayoutParams

//視窗配置引數
private WindowManager.LayoutParams lp;

...
lp = new WindowManager.LayoutParams();

配置視窗顯示效果

//配置視窗的顯示型別
lp.type = WindowManager.LayoutParams.TYPE_APPLICATION;
//透明背景(透明)
lp.format = PixelFormat.TRANSPARENT;
//配置視窗的特性,FLAG_NOT_TOUCH_MODAL不可觸控不影響後面的事件的響應, FLAG_NOT_FOCUSABLE不獲取焦點
lp.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
//視窗的顯示位置 lp.gravity = Gravity.CENTER; // lp.x = 200; // lp.y = 300; lp.width = 300; lp.height = 200;

顯示窗口布局

wm.addView(windowLayout, lp);

更新視窗效果

int x = lp.x+10;
int y = lp.y +20;
lp.x = x;
lp.y = y;
wm.updateViewLayout(windowLayout,lp);

移除視窗

wm.removeView(windowLayout);

系統型別的彈框

lp.type = WindowManager.LayoutParams
.TYPE_SYSTEM_ALERT; 需要的許可權 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

視窗如果要加上硬體加速需要在flag中新增WindowManager.LayoutParams.FLAGHARDWAREACCELERATED

lp.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL |
    WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
    WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED;

SensorManager感測器

感測器管理器主要可以監聽裝置上的加速度、 溫度、 光感、 方向、 磁力、 陀螺儀、 壓力、 溫度、 重力等等感測器資訊

1、 獲取感測器管理器

private SensorManager sensorManager;
...
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

2、 定義感測器監聽器

private SensorEventListener sensorEventListener = new SensorEventListener() {
    //感測器資料發生變化
    @Override
    public void onSensorChanged(SensorEvent event) {
        //針對重力加速度可以得到3個方向的重力資訊
        float[] values = event.values;
        float x = values[0];
        float y = values[1];
        float z = values[2];
        Log.e("m_tag","X:"+x+" Y:"+y+" Z:"+z);
    } 
    //靈敏度發生變化
    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {

    }
};

3、 註冊監聽

//第一個引數表示監聽器
//第二個引數表示監聽的感測器型別, 通過sensorManager.getDefaultSensor(Sensor型別)
//靈敏度SENSOR_DELAY_UI普通等級, SENSOR_DELAY_GAME遊戲等級, SENSOR_DELAY_FASTEST最快的
sensorManager.registerListener(sensorEventListener,
    sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
    SensorManager.SENSOR_DELAY_UI);

4、 取消註冊

sensorManager.unregisterListener(sensorEventListener);

相關推薦

Android --- 常用系統服務

目前涉及的互動視窗Activity、 Dialog WindowManager視窗管理器 可以完成視窗的顯示、 更新、 銷燬的處理 獲取視窗管理器物件. private WindowManager wm; ... //獲取物件 wm = (Wind

Android sensor 系統框架

port amp cap 錯誤 str 註釋 hardware war cas 連載上一篇http://www.cnblogs.com/hackfun/p/7327320.html (D) 如何加載訪問.so庫 在前一篇博客http://www.cnblogs.co

Linux系統管理網絡服務

網絡服務 linux redhat 紅帽 點擊下載:Linux系統管理(二)(網絡服務)本文出自 “飛奔的魚兒” 博客,請務必保留此出處http://feiyuer.blog.51cto.com/6967044/1931978Linux系統管理(二)(網絡服務)

Android入門之文件系統操作文件操作相關指令

-h tools strong abc his art 為什麽 重命名 path (一)獲取總根 [java] view plain copy File[] fileList=File.listRoots(); //返回fileList.length為1 /

android 系統服務service

-服務(service)是Android 系統中的重要元件,服務可以在不顯示介面的情況下在後臺執行制定的任務或者進行兩個不同程序間的通訊, android在後臺執行著許多服務,這些服務在系統啟動時被開啟,支援系統的正常工作。例如:來電顯示服務,在程式設計是通過

ext2文件系統學習—— 目錄磁盤結構

echo free 文件格式 htm file 目錄結構 bitmap 點號 name 創建鏡像、mount等操作和上一篇一樣,測試目錄結構如下: 一些文件系統信息如下: Block size: 1024 Inodes per group: 1

Android Design Support Library用NavigationView實現抽屜菜單界面

mpi tar bar board contex != print 滑動 頭部 NavigationView在MD設計中很重要,之前Google也提出了使用DrawerLayout來實現導航抽屜。這次,在Android Design Support Li

《Java從入門到放棄》入門篇:Struts2的常用驗證方式

java struts action validate 數據驗證 前一回,我們講完了“直接在功能方法中寫驗證代碼”這種驗證方式,接下來,我們繼續搞定後續的三種方式。二、重寫validate方法(註意這個方法會驗證該類中所有的方法) 使用重寫驗證方法的好處就是,又可以少寫一句代碼了!!

Android短信收發

light undle protect ati res class cast gets new 接收SMS類,代碼如下 //for receive SMS private SmsReceiver mSmsReceiver; @Override

DBA成長之路---mysql數據庫服務

連接查詢 過程 where 存在 arc nat 唯一索引 rest nal 管理表記錄 增加insert into 庫.表 values(字段值列表);insert into 庫.表(字段值列表) values(字段值列表);insert into 庫.表 values(

Android常見問題總結

時長 加載 col gen try pla 下載 pro 屬性 1、布局文件LinearLayout線性布局添加內容報錯。解決方法:線性布局LinearLayout中包裹的元素多余1個需要添加android:orientation屬性。 2、android 的應用APP怎麽

SCCM2016 集成WSUS提供補丁服務

雲計算 雲平臺 接上篇文章,我們已經成功的配置好了 SCCM的 WSUS功能,今天來做一些優化配置。我們可以通過右鍵“所有軟件更新”後選擇“同步軟件更新” 來進行補丁的手動更新,也可以按照之前配置的自動任務計劃來進行更新。系統會提示我們可以通過 SMS_WSUS_SYNC_MANAGER來進行監控這

高並發秒殺系統方案

nco home null public web IT pro mage 項目 項目框架搭建: DemoController: package com.imooc.miaosha.controller; import org.springframewor

Linux操作系統基礎

Linux文件管理 文件系統和目錄結構 文件和目錄被組成成一個單根倒置樹結構。根文件系統rootfs root filesystem rootfs:/etc/,/usr,/var,/root,/home,/dev 文件系統分層結構

Android百度地圖結合方向傳感器我們自己定位哪裏走

troy 真機 pretty 刪除文件 RR tap 大神 素材 near Android百度地圖(二)結合方向傳感器我們自己定位哪裏走 本文代碼在http://b

windows server 2016 網絡服務

windows server 2016 mcsa mcse dhcp: 基本概念:租約:保證一個廣播網絡中,只有一個DHCP服務在正常運行 租約更新:當企業的DHCP出現故障時,不會立即引起企業內部網絡的故障DHCP服務器部署和配置 基本部署:如果當前服務器環境中由AD域環境,該服務器必須經過A

基於httpd-2.2和httpd-2.4配置虛擬主機web站點,並提供https服務

基於主機名配置虛擬主機web站點 使用httpd-2.2和httpd-2.4實現> 1.建立httpd服務,要求:> 1) 提供兩個基於名稱的虛擬主機www1, www2;要求每個虛擬主機都有單獨的錯誤日誌和訪問日誌; > 2) 通過www1的/server-status提供狀態信息,且僅允

基於httpd-2.4配置虛擬主機web站點,並提供https服務

基於主機名配置虛擬主機web站點 為虛擬主機站點提供https服務 使用httpd-2.2和httpd-2.4實現> 1.建立httpd服務,要求:> 1) 提供兩個基於名稱的虛擬主機www1, www2;要求每個虛擬主機都有單獨的錯誤日誌和訪問日誌; > 2) 通過www1的/s

Android項目實戰:安卓應用程序退出的三種方法

eat 延遲 用戶 pre html port length tst 二次 原文:Android項目實戰(二):安卓應用程序退出的三種方法現在的APP退出的時候都不是讓用戶點擊了“後退鍵”就退出。防止用戶點錯了後退鍵而造成的用戶體檢不好。 一年前搞

linux 基礎服務

linux windows 基礎服務 登陸xshell的時候碰到個問題,突然不能登陸了如下圖:1.檢查虛擬機的虛擬網絡編輯器,改成如下配置,這裏的名字是你的網絡連接相同的,找一個能上網的連接,不要使用自動。 httpd基於端口的創建 [root@localhost conf.d]# rpm -ql