一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Android - Android實現(xiàn)帶頁面切換的鎖屏功能

Android實現(xiàn)帶頁面切換的鎖屏功能

2022-02-28 15:35Xia_焱 Android

這篇文章主要為大家詳細介紹了Android實現(xiàn)帶頁面切換的鎖屏功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

一個簡單的Android 鎖屏小Demo,可以設置左滑有滑,我簡單的了解一下自定義鎖屏,順便總結了一下思路順便畫個圖幫助理解。

Android實現(xiàn)帶頁面切換的鎖屏功能

我的效果圖

Android實現(xiàn)帶頁面切換的鎖屏功能

代碼思路

鎖屏分為兩塊,一塊是UI(自定義布局)另一塊這就是服務了

自定義鎖屏布局

ACTION_DOWN按下:中間的ImageView會變成另一種形態(tài)
ACTION_MOVE移動: 移動到左/右邊,左/右ImageView形態(tài)也要發(fā)生變化,
ACTION_UP抬起:判斷滑動到左/右那邊,或者回到最初位置

*服務

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@Override
public void onCreate() {
 super.onCreate();
 mContext = getApplicationContext();
 //管理打開的窗口程序
 mWinMng = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
 i = new Intent(mContext, MyService.class);
 i.setAction(MyService.LOCK_ACTION);
 zdLockIntent = new Intent(MyService.this , MyService.class);
 //設置此狀態(tài),首先會查找是否存在和被啟動的Activity具有相同的親和性的任務棧
 zdLockIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 /*注冊廣播*/
 IntentFilter mScreenOnFilter = new IntentFilter("android.intent.action.SCREEN_ON");
 MyService.this.registerReceiver(mScreenOnReceiver, mScreenOnFilter);
 /*注冊廣播*/
 IntentFilter mScreenOffFilter = new IntentFilter("android.intent.action.SCREEN_OFF");
 MyService.this.registerReceiver(mScreenOffReceiver, mScreenOffFilter);
}

這個View 就是之前自定義的View,我只說說核心的代碼 稍后上Demo

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@Override
 public int onStartCommand(Intent intent, int flags, int startId) {
 
  if(intent!=null){
   String action = intent.getAction();
   if(TextUtils.equals(action, LOCK_ACTION))
    //鎖屏添加view
    addView();
   else if(TextUtils.equals(action, UNLOCK_ACTION))
   { //解屏移除view
    removeView();
   }
  }
  return Service.START_STICKY;
 }

當程序銷毀的時候.服務要重新啟動,不然這個app的鎖屏,會隨著app的銷毀而被銷毀

?
1
2
3
4
5
6
7
8
@Override
 public void onDestroy(){
  super.onDestroy();
  MyService.this.unregisterReceiver(mScreenOnReceiver);
  MyService.this.unregisterReceiver(mScreenOffReceiver);
  //在此重新啟動
  startService(new Intent(MyService.this, MyService.class));
 }

當屏幕變量或者變暗的時候,要解除屏幕鎖定的方法,如果不解除 那只能一直鎖著了。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
//屏幕變亮的廣播,我們要隱藏默認的鎖屏界面
 private BroadcastReceiver mScreenOnReceiver = new BroadcastReceiver(){
 
  @Override
  public void onReceive(Context context , Intent intent) {
 
   Log.i(TAG, intent.getAction());
 
   if(intent.getAction().equals("android.intent.action.SCREEN_ON")){
    //鍵盤鎖的服務
    mKeyguardManager = (KeyguardManager)context.getSystemService(Context.KEYGUARD_SERVICE);
    mKeyguardLock = mKeyguardManager.newKeyguardLock("zdLock 1");
    mKeyguardLock.disableKeyguard();
    startService(i);
 
   }
  }
 
 };
  //屏幕變暗/變亮的廣播 , 我們要調(diào)用KeyguardManager類相應方法去解除屏幕鎖定
 private BroadcastReceiver mScreenOffReceiver = new BroadcastReceiver(){
  @Override
  public void onReceive(Context context , Intent intent) {
   String action = intent.getAction() ;
 
   Log.i(TAG, intent.toString());
 
   if(action.equals("android.intent.action.SCREEN_OFF")
     || action.equals("android.intent.action.SCREEN_ON") ){
    mKeyguardManager = (KeyguardManager)context.getSystemService(Context.KEYGUARD_SERVICE);
    mKeyguardLock = mKeyguardManager.newKeyguardLock("zdLock 1");
    mKeyguardLock.disableKeyguard();
    startService(i);
   }
  }
};

權限問題

?
1
2
3
4
5
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" /><!-- 屏蔽HOME鍵需要的權限 -->
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

這個鎖屏Demo涉及到的東西有點多,我寫的這個博客掐不住重點,寫的繁瑣反而浪費大家時間,什么也不說了全在代碼中↓

源碼地址:鎖屏

補充一點

用小米手機當測試機,一定要把這個Demo鎖屏權限打開,手機設置中找到app,打開鎖屏,不然一運行就崩掉。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/MacaoPark/article/details/73477986

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲乱码尤物193yw在线播放 | 亚洲图片一区二区三区 | 蜜色网| 亚洲网站在线看 | 调教处男 | 波多野结衣中文字幕 | 欧美18-19sex性处视频 | 精品女同同性视频很黄很色 | 午夜日本大胆裸艺术 | 天天爱综合网 | 日本小视频网站 | 国产大片线上免费观看 | 欧美国产日本精品一区二区三区 | 人人揉人人爽五月天视频 | 色吧导航| 日本人交换乱理伦片 | w7w7w7w7w免费 | 被黑人同学彻底征服全文小说阅读 | 91麻豆在线观看 | 国产亚洲自愉自愉 | 五月天中文在线 | 99爱在线观看精品视频 | free哆拍拍免费永久视频 | 免费看麻豆视频 | 日本片免费观看一区二区 | 国产亚洲精品高清在线 | 日本十大顶级绝伦推理片 | 毛片免| 麻豆亚洲一区 | 国产99青草全福视在线 | 免费高清www动漫视频播放器 | 513热点网| 青青青青在线视频 | 女仆色永久免费网站 | 四虎永久在线精品波多野结衣 | 王雨纯羞羞 | 99热久久这里只有精品6国产网 | 国产一区二区三区丶四区 | 日韩欧美一区二区三区视频 | 男人操女人视频 | 91亚洲一区二区在线观看不卡 |