首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android 4.0 鎖屏介面電話圖標顯示未接來電數量:自訂 View 疊加與內容觀察者

     編輯:程式設計綜合問答

在鎖屏 MultiWaveView 的電話圖標右上角顯示未接來電計數,需自訂 View 疊加於圖標上方,並用 ContentObserver 監聽通話記錄變化觸發重繪。

佈局策略

  • 使用 FrameLayout 將電話圖標置於底層,未接來電計數 View 置於上層(初始 VISIBLE/GONE 控制)。
  • 計數 View 繼承 View,覆寫 onDraw() 繪製紅色圓形背景與數字。

監聽邏輯

public class MissCallObserver extends ContentObserver {
    public MissCallObserver(Handler handler) { super(handler); }
    @Override
    public void onChange(boolean selfChange) {
        int count = getMissedCallCount(context);
        if (count != lastCount) {
            lastCount = count;
            handler.post(() -> missedCallView.setCount(count)); // 觸發重繪
        }
    }
}

註冊觀察者

getContentResolver().registerContentObserver(
    CallLog.Calls.CONTENT_URI, true, new MissCallObserver(handler));

注意

  • 需 READ_CALL_LOG 權限。
  • 計數 View 需正確加入鎖屏視圖階層(通常在 KeyguardViewMediator 或對應 XML 中)。
  • onDraw 使用 Canvas.drawText 繪製數字,座標需根據圖標大小調整。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved