最佳化Android預設的狀態列

來源:互聯網
上載者:User

狀態列快捷按鈕實現原理

採用java工廠類模式來實現
所有按鈕均繼承QuickButton.java來實現
該類提供的介面有:
一:protected abstract void toggleState();
用途:每個按鈕的點擊事件處理,寫在mClickListener 裡面。
二:protected abstract boolean handleLongClick()


狀態列左右滑動原理


QuickSettingsView.java繼承 FrameLayout為使用者自訂控制項,用於收集所有已實現QuickButton,
1,實現方式概述:
步驟一:先將所有已實現的QuickButton
放到LinearLayout裡面
步驟二:每屏顯示5個QuickButton如果個數大於5個,回將LinearLayout放到
HorizontalScrollView裡面已實現其左右滑動效果,
2,重點代碼示範:
3,自訂button和宏的控制:
4,注意事項:
<1>由於不同手機解析度不同,因此每個button的寬度須動態擷取
實現方法:
mContext.getResources().getDisplayMetrics().widthPixels / QUICK_PANEL_BUTTON_CONUT
<2> HorizontalScrollView預設會有白色ScrollBar看起來影響美觀,因此要去掉。
實現方法為:
mScrollView.setHorizontalScrollBarEnabled(false);
<3>由於所有的action都放在QuickSettingsView.java做統一處理,因此收到action僅對註冊的改action的button進行處理


通知欄背景和字型顏色
修改的檔案目錄:main/frameworks/base/core/res/res/values/styles.xml
內容字型:
<style name="TextAppearance.StatusBar.EventContent">
<item name="android:textColor">#ffB6CAD6</item>
</style>
修改標題字型:
<style name="TextAppearance.StatusBar.EventContent.Title">
<item name="android:textSize">16sp</item>
<item name="android:textStyle">bold</item>
<item name="android:textColor">#ffffffff</item>
</style>


通知欄Item背景的修改:
修改檔案:main/frameworks/base/packages/SystemUI/res/layout/status_bar_latest_event.xml
修改內容:
<com.android.systemui.statusbar.LatestItemView
……….
android:background="@drawable/status_bar_item_background_style“
……….>
</com.android.systemui.statusbar.LatestItemView>

動畫配置參數在目錄:

main/frameworks/base/packages/SystemUI/res/anim

 


檔案cycle_7.xml中定義左右抖動次數:

<cycleInterpolator xmlns:android=http://schemas.android.com/apk/res/android android:cycles="1" />

 

 


編譯步驟如下:
第一:在main/frameworks/base/packages/SystemUI下運行:mm
第二:將apk取出,將其push到system/app下,

第三:執行adb reboot

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.