真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯網站制作重慶分公司

Android怎么實現帶頁面切換的鎖屏功能

小編給大家分享一下Android怎么實現帶頁面切換的鎖屏功能,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯是一家專業(yè)提供容城企業(yè)網站建設,專注與成都網站建設、做網站、html5、小程序制作等業(yè)務。10年已為容城眾多企業(yè)、政府機構等服務。創(chuàng)新互聯專業(yè)網絡公司優(yōu)惠進行中。

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

Android怎么實現帶頁面切換的鎖屏功能

我的效果圖

Android怎么實現帶頁面切換的鎖屏功能

代碼思路

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

自定義鎖屏布局

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

*服務

 @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

@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的銷毀而被銷毀

@Override
 public void onDestroy(){
  super.onDestroy();
  MyService.this.unregisterReceiver(mScreenOnReceiver);
  MyService.this.unregisterReceiver(mScreenOffReceiver);
  //在此重新啟動
  startService(new Intent(MyService.this, MyService.class));
 }

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

//屏幕變亮的廣播,我們要隱藏默認的鎖屏界面
 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);

   }
  }

 };
  //屏幕變暗/變亮的廣播 , 我們要調用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);
   }
  }
};

權限問題





以上是“Android怎么實現帶頁面切換的鎖屏功能”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯行業(yè)資訊頻道!


網站題目:Android怎么實現帶頁面切換的鎖屏功能
當前URL:http://weahome.cn/article/gepesc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部