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);
    }


目录
相关文章
|
2月前
|
Android开发
Android开发表情emoji功能开发
本文介绍了一种在Android应用中实现emoji表情功能的方法,通过将图片与表情字符对应,实现在`TextView`中的正常显示。示例代码展示了如何使用自定义适配器加载emoji表情,并在编辑框中输入或删除表情。项目包含完整的源码结构,可作为开发参考。视频演示和源码详情见文章内链接。
74 4
Android开发表情emoji功能开发
|
2月前
|
安全 Android开发 iOS开发
Android vs iOS:探索移动操作系统的设计与功能差异###
【10月更文挑战第20天】 本文深入分析了Android和iOS两个主流移动操作系统在设计哲学、用户体验、技术架构等方面的显著差异。通过对比,揭示了这两种系统各自的独特优势与局限性,并探讨了它们如何塑造了我们的数字生活方式。无论你是开发者还是普通用户,理解这些差异都有助于更好地选择和使用你的移动设备。 ###
55 3
|
2月前
|
XML 数据可视化 Android开发
Android应用界面
Android应用界面中的布局和控件使用,包括相对布局、线性布局、表格布局、帧布局、扁平化布局等,以及AdapterView及其子类如ListView的使用方法和Adapter接口的应用。
35 0
Android应用界面
|
3月前
|
XML Android开发 UED
💥Android UI设计新风尚!掌握Material Design精髓,让你的界面颜值爆表!🎨
随着移动应用市场的蓬勃发展,用户对界面设计的要求日益提高。为此,掌握由Google推出的Material Design设计语言成为提升应用颜值和用户体验的关键。本文将带你深入了解Material Design的核心原则,如真实感、统一性和创新性,并通过丰富的组件库及示例代码,助你轻松打造美观且一致的应用界面。无论是色彩搭配还是动画效果,Material Design都能为你的Android应用增添无限魅力。
82 1
|
4月前
|
编解码 测试技术 Android开发
Android经典实战之用 CameraX 库实现高质量的照片和视频拍摄功能
本文详细介绍了如何利用CameraX库实现高质量的照片及视频拍摄功能,包括添加依赖、初始化、权限请求、配置预览与捕获等关键步骤。此外,还特别针对不同分辨率和帧率的视频拍摄提供了性能优化策略,确保应用既高效又稳定。
422 1
Android经典实战之用 CameraX 库实现高质量的照片和视频拍摄功能
|
3月前
|
Android开发 开发者
Android平台无纸化同屏如何实现实时录像功能
Android平台无纸化同屏,如果需要本地录像的话,实现难度不大,只要复用之前开发的录像模块的就可以,对我们来说,同屏采集这块,只是数据源不同而已,如果是自采集的其他数据,我们一样可以编码录像。
|
4月前
|
图形学 Android开发
小功能⭐️Unity调用Android常用事件
小功能⭐️Unity调用Android常用事件
|
4月前
|
Android开发 iOS开发 C#
Xamarin.Forms:从零开始的快速入门指南——打造你的首个跨平台移动应用,轻松学会用C#和XAML构建iOS与Android通用界面的每一个步骤
【8月更文挑战第31天】Xamarin.Forms 是一个强大的框架,让开发者通过单一共享代码库构建跨平台移动应用,支持 iOS、Android 和 Windows。使用 C# 和 XAML,它简化了多平台开发流程并保持一致的用户体验。本指南通过创建一个简单的 “HelloXamarin” 应用演示了 Xamarin.Forms 的基本功能和工作原理。
106 0
|
Java Android开发 开发者
Android 悬浮窗功能的实现
Android 悬浮窗功能的实现
1396 2
Android 悬浮窗功能的实现
|
Android开发 容器 数据格式
Android 购物车功能的实现
首先,众所周知,ListView是Android最常用的控件,可以说是最简单的控件,也可以说是最复杂的控件。 作为一个Android初级开发者,可能会简单的ListView展示图文信息。 作为一个有一定项目开发经验的Android开发者来说,可能会遇到ListView的列表项中存在各种按钮的需求。
1173 0