赞
踩
KeyguardClockSwitch 定义在KeyguardStatusView中,
mClockView = findViewById(R.id.keyguard_clock_container);
KeyguardClockSwitch的父类为:
Class Name: LinearLayout
Class Name: KeyguardStatusView
Class Name: NotificationPanelView
Class Name: NotificationShadeWindowView
layout的包含关系为: keyguard_status_view.xml -> status_bar_expanded.xml -> super_notification_shade.xml
而 super_notification_shade.xml 是在 SuperStatusBarViewFactory的
<?xml version="1.0" encoding="utf-8"?> <!-- ** ** Copyright 2009, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License") ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ --> <!-- This is a view that shows general status information in Keyguard. --> <com.android.keyguard.KeyguardStatusView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:androidprv="http://schemas.android.com/apk/res-auto" android:id="@+id/keyguard_status_view" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal|top"> <LinearLayout android:id="@+id/status_view_container" android:layout_width="match_parent" android:layout_height="wrap_content" android:clipChildren="false" android:clipToPadding="false" android:orientation="vertical"> <TextView android:id="@+id/logout" android:layout_height="@dimen/logout_button_layout_height" android:layout_width="wrap_content" android:layout_gravity="center_horizontal" android:layout_centerHorizontal="true" android:layout_marginBottom="@dimen/logout_button_margin_bottom" android:gravity="center" android:paddingLeft="@dimen/logout_button_padding_horizontal" android:paddingRight="@dimen/logout_button_padding_horizontal" android:background="@drawable/logout_button_background" android:fontFamily="@*android:string/config_bodyFontFamilyMedium" android:textAllCaps="true" android:textColor="?android:attr/textColorPrimary" android:textSize="13sp" android:text="@*android:string/global_action_logout" /> <include layout="@layout/keyguard_clock_switch" android:id="@+id/keyguard_clock_container" android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/owner_info" android:layout_marginLeft="16dp" android:layout_marginRight="16dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/date_owner_info_margin" android:layout_gravity="center_horizontal" android:layout_centerHorizontal="true" android:textColor="?attr/wallpaperTextColorSecondary" android:textSize="@dimen/widget_label_font_size" android:letterSpacing="0.05" android:ellipsize="marquee" android:singleLine="true" /> <com.android.systemui.statusbar.phone.NotificationIconContainer android:id="@+id/clock_notification_icon_container" android:layout_width="match_parent" android:layout_height="@dimen/notification_shelf_height" android:layout_marginTop="@dimen/widget_vertical_padding" android:visibility="invisible" /> </LinearLayout> </com.android.keyguard.KeyguardStatusView>
<?xml version="1.0" encoding="utf-8"?> <!-- ** ** Copyright 2006, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ --> <com.android.systemui.statusbar.phone.NotificationPanelView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:systemui="http://schemas.android.com/apk/res-auto" android:id="@+id/notification_panel" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/transparent"> <FrameLayout android:id="@+id/big_clock_container" android:layout_width="match_parent" android:layout_height="match_parent" android:visibility="gone" /> <include layout="@layout/keyguard_status_view" android:visibility="gone" /> <com.android.systemui.statusbar.phone.NotificationsQuickSettingsContainer android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="@integer/notification_panel_layout_gravity" android:id="@+id/notification_container_parent" android:clipToPadding="false" android:clipChildren="false"> <include layout="@layout/dock_info_overlay" /> <FrameLayout android:id="@+id/qs_frame" android:layout="@layout/qs_panel" android:layout_width="@dimen/qs_panel_width" android:layout_height="match_parent" android:layout_gravity="@integer/notification_panel_layout_gravity" android:clipToPadding="false" android:clipChildren="false" systemui:viewType="com.android.systemui.plugins.qs.QS" /> <com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout android:id="@+id/notification_stack_scroller" android:layout_marginTop="@dimen/notification_panel_margin_top" android:layout_width="@dimen/notification_panel_width" android:layout_height="match_parent" android:layout_gravity="@integer/notification_panel_layout_gravity" android:layout_marginBottom="@dimen/close_handle_underlap" /> <include layout="@layout/ambient_indication" android:id="@+id/ambient_indication_container" /> <include layout="@layout/photo_preview_overlay" /> <ViewStub android:id="@+id/keyguard_user_switcher" android:layout="@layout/keyguard_user_switcher" android:layout_height="match_parent" android:layout_width="match_parent" /> <include layout="@layout/keyguard_status_bar" android:visibility="invisible" /> <Button android:id="@+id/report_rejected_touch" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/status_bar_header_height_keyguard" android:text="@string/report_rejected_touch" android:visibility="gone" /> </com.android.systemui.statusbar.phone.NotificationsQuickSettingsContainer> <include layout="@layout/keyguard_bottom_area" android:visibility="gone" /> <com.android.systemui.statusbar.AlphaOptimizedView android:id="@+id/qs_navbar_scrim" android:layout_height="96dp" android:layout_width="match_parent" android:layout_gravity="bottom" android:visibility="invisible" android:background="@drawable/qs_navbar_scrim" /> <include layout="@layout/status_bar_expanded_plugin_frame"/> </com.android.systemui.statusbar.phone.NotificationPanelView>
<?xml version="1.0" encoding="utf-8"?> <!-- ** ** Copyright 2020, The Android Open Source Project ** super_notification_shade.xml ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ --> <!-- This is the notification shade window. --> <com.android.systemui.statusbar.phone.NotificationShadeWindowView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:sysui="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <com.android.systemui.statusbar.BackDropView android:id="@+id/backdrop" android:layout_width="match_parent" android:layout_height="match_parent" android:visibility="gone" sysui:ignoreRightInset="true" > <ImageView android:id="@+id/backdrop_back" android:layout_width="match_parent" android:scaleType="centerCrop" android:layout_height="match_parent" /> <ImageView android:id="@+id/backdrop_front" android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="centerCrop" android:visibility="invisible" /> </com.android.systemui.statusbar.BackDropView> <com.android.systemui.statusbar.ScrimView android:id="@+id/scrim_behind" android:layout_width="match_parent" android:layout_height="match_parent" android:importantForAccessibility="no" sysui:ignoreRightInset="true" /> <include layout="@layout/status_bar_expanded" android:layout_width="match_parent" android:layout_height="match_parent" android:visibility="invisible" /> <include layout="@layout/brightness_mirror" /> <com.android.systemui.statusbar.ScrimView android:id="@+id/scrim_in_front" android:layout_width="match_parent" android:layout_height="match_parent" android:importantForAccessibility="no" sysui:ignoreRightInset="true" /> <LinearLayout android:id="@+id/lock_icon_container" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/status_bar_height" android:layout_gravity="top|center_horizontal"> <com.android.systemui.statusbar.phone.LockIcon android:id="@+id/lock_icon" android:layout_width="@dimen/keyguard_lock_width" android:layout_height="@dimen/keyguard_lock_height" android:layout_gravity="center_horizontal" android:layout_marginTop="@dimen/keyguard_lock_padding" android:contentDescription="@string/accessibility_unlock_button" android:src="@*android:drawable/ic_lock" android:scaleType="center" /> <com.android.keyguard.KeyguardMessageArea android:id="@+id/keyguard_message_area" style="@style/Keyguard.TextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/keyguard_lock_padding" android:gravity="center" android:singleLine="true" android:ellipsize="marquee" android:focusable="true" /> </LinearLayout> </com.android.systemui.statusbar.phone.NotificationShadeWindowView>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。