Android SystemUI去掉拖动亮度条QSPanel界面隐藏功能

简介: Android SystemUI去掉拖动亮度条QSPanel界面隐藏功能

SystemUI的在下拉状态栏第二次展开的QSPanel的界面时,原生下拉状态栏界面会有亮度条SeekBar,

当拖动的时候,亮度会改变但是同时整个QSPanel下拉状态栏也隐藏掉了 。客户要求去掉这个拖动亮度条时隐藏下拉状态栏的功能

相关布局和代码

```
 
/SystemUI/res/layout/quick_settings_brightness_dialog.xml 亮度条核心布局
 
/SystemUI/res/layout/brightness_mirror.xml 包含亮度条布局
 
/SystemUI/res/layout/qs_panel.xml 下拉状态栏第二次展开的QSPanel的界面
 
 
 
 
 
/SystemUI/src/com/android/systemui/qs/QSPanel.java
 
--- a/ac8257_0302/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/qs/QSPanel.java
 
+++ b/ac8257_0302/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/qs/QSPanel.java
 
@@ -104,9 +104,10 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
 
 
 
setOrientation(VERTICAL);
 
 
 
+ //
 
mBrightnessView = LayoutInflater.from(mContext).inflate(
 
R.layout.quick_settings_brightness_dialog, this, false);
 
- addView(mBrightnessView);
 
+ //addView(mBrightnessView); //addView 加载控件,垂直线性布局,先add的上面
 
 
 
// M: @ {
 
mQuickSettingsExt = OpSystemUICustomizationFactoryBase
 
@@ -128,7 +129,8 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
 
((PagedTileLayout) mTileLayout).setPageIndicator(mPanelPageIndicator);
 
mQsTileRevealController = new QSTileRevealController(mContext, this,
 
(PagedTileLayout) mTileLayout);
 
-
 
+
 
+ addView(mBrightnessView);//改变亮度条位置
 
addDivider();
 
 
 
mFooter = new QSSecurityFooter(this, context);
 
 
 
 
 
/SystemUI/src/com/android/systemui/statusbar/policy/BrightnessMirrorController.java
 
 
 
//去掉这个拖动亮度条时隐藏下拉状态栏的功能
 
@@ -56,9 +56,12 @@ public class BrightnessMirrorController
 
}
 
 
 
public void showMirror() {
 
- mBrightnessMirror.setVisibility(View.VISIBLE);
 
- mVisibilityCallback.accept(true);
 
- mNotificationPanel.setPanelAlpha(0, true /* animate */);
 
 
 
+ mBrightnessMirror.setVisibility(View.INVISIBLE);
 
+ mVisibilityCallback.accept(false);
 
+ mNotificationPanel.setPanelAlpha(255, true /* animate */);
 
}
 
 
 
 
 
```
    /**
     * Add brightness view above the tile layout.
     *
     * Used to add the brightness slider after construction.
     */
    public void setBrightnessView(@NonNull View view) {
        if (mBrightnessView != null) {
            removeView(mBrightnessView);
            mMovableContentStartIndex--;
        }
        addView(view, 0);
        mBrightnessView = view;
 
        setBrightnessViewMargin();
 
        mMovableContentStartIndex++;
    }
 
    private void setBrightnessViewMargin() {
        if (mBrightnessView != null) {
            MarginLayoutParams lp = (MarginLayoutParams) mBrightnessView.getLayoutParams();
            lp.topMargin = mContext.getResources()
                    .getDimensionPixelSize(R.dimen.qs_brightness_margin_top)+30;
            lp.bottomMargin = mContext.getResources()
                    .getDimensionPixelSize(R.dimen.qs_brightness_margin_bottom);
            mBrightnessView.setLayoutParams(lp);
        }
    }


src/com/android/systemui/qs/QSPanelController.java调用"setBrightnessView"方法添加亮度进度条

    @Inject
    QSPanelController(QSPanel view, QSSecurityFooter qsSecurityFooter, TunerService tunerService,
            QSTileHost qstileHost, QSCustomizerController qsCustomizerController,
            @Named(QS_USING_MEDIA_PLAYER) boolean usingMediaPlayer,
            @Named(QS_PANEL) MediaHost mediaHost,
            QSTileRevealController.Factory qsTileRevealControllerFactory,
            DumpManager dumpManager, MetricsLogger metricsLogger, UiEventLogger uiEventLogger,
            QSLogger qsLogger, BrightnessController.Factory brightnessControllerFactory,
            BrightnessSliderController.Factory brightnessSliderFactory,
            FalsingManager falsingManager, CommandQueue commandQueue) {
        super(view, qstileHost, qsCustomizerController, usingMediaPlayer, mediaHost,
                metricsLogger, uiEventLogger, qsLogger, dumpManager);
        mQsSecurityFooter = qsSecurityFooter;
        mTunerService = tunerService;
        mQsCustomizerController = qsCustomizerController;
        mQsTileRevealControllerFactory = qsTileRevealControllerFactory;
        mFalsingManager = falsingManager;
        mCommandQueue = commandQueue;
        mQsSecurityFooter.setHostEnvironment(qstileHost);
 
        mBrightnessSliderController = brightnessSliderFactory.create(getContext(), mView);
        mView.setBrightnessView(mBrightnessSliderController.getRootView());
 
        mBrightnessController = brightnessControllerFactory.create(mBrightnessSliderController);
        mBrightnessMirrorHandler = new BrightnessMirrorHandler(mBrightnessController);
    }


目录
相关文章
|
4天前
|
Android开发
定制Android关机界面
定制Android关机界面
10 0
|
4天前
|
Linux Android开发
Android开机不显示bootloader界面
Android开机不显示bootloader界面
14 0
Android开机不显示bootloader界面
|
4天前
|
程序员 Android开发
Android亮度调节的几种实现方法
Android亮度调节的几种实现方法
11 0
|
4天前
|
XML Android开发 数据格式
android 9 Systemui 动态隐藏导航栏
android 9 Systemui 动态隐藏导航栏
12 0
|
4天前
|
XML 存储 测试技术
Android系统 添加动态控制SystemUI状态栏、导航栏和下拉菜单
Android系统 添加动态控制SystemUI状态栏、导航栏和下拉菜单
54 1
|
4天前
|
Java Android开发
Android Mediatek 应用层重置USB设备功能
Android Mediatek 应用层重置USB设备功能
13 0
|
4天前
|
Linux Android开发
Android 内核关闭CAN 串口设备回显功能
Android 内核关闭CAN 串口设备回显功能
13 0
|
Android开发
android和OPhone模拟器界面对比
 本文为原创,如需转载,请注明作者和出处,谢谢!     OPhone是中国移动推出的手机操作系统平台,是基于android的,只是做了一些扩展。
823 0
|
1天前
|
编解码 数据库 Android开发
安卓应用开发:打造高效用户界面的五大技巧
【5月更文挑战第18天】在竞争激烈的应用市场中,一个流畅且直观的用户界面(UI)对于安卓应用的成功至关重要。本文将探讨五种提升安卓应用用户界面性能的技巧,包括合理布局设计、优化资源使用、利用硬件加速、内存管理以及响应式编程。通过这些方法,开发者可以创建出既美观又高效的应用体验,从而吸引和保留用户。