当前位置: 首页 > article >正文

Android13 Launcher3屏蔽桌面指示器

最近需求是要求隐藏桌面上的分页指示器(提示左右滑动 分页点或横线)看到Launcher3里面相关类是PageIndicator。没有找到该view设置隐藏,但是找到了一个新的方案

    隐藏桌面圆点指示器
    
    Change-Id: I44fd51d3662247926d5550346b7b62b2e264086a

diff --git a/src/com/android/launcher3/folder/Folder.java b/src/com/android/launcher3/folder/Folder.java
index 6976a79e0f..5e3c2d35e1 100755
--- a/src/com/android/launcher3/folder/Folder.java
+++ b/src/com/android/launcher3/folder/Folder.java
@@ -285,6 +285,7 @@ public class Folder extends AbstractFloatingView implements ClipPathView, DragSo
         mContent.setFolder(this);
 
         mPageIndicator = findViewById(R.id.folder_page_indicator);
+        mPageIndicator.setVisibility(View.INVISIBLE);
         mFolderName = findViewById(R.id.folder_name);
         mFolderName.setTextSize(TypedValue.COMPLEX_UNIT_PX, dp.folderLabelTextSizePx);
         mFolderName.setOnBackKeyListener(this);
diff --git a/src/com/android/launcher3/pageindicators/WorkspacePageIndicator.java b/src/com/android/launcher3/pageindicators/WorkspacePageIndicator.java
index 1681ea5758..594ad9d9b8 100644
--- a/src/com/android/launcher3/pageindicators/WorkspacePageIndicator.java
+++ b/src/com/android/launcher3/pageindicators/WorkspacePageIndicator.java
@@ -141,8 +141,8 @@ public class WorkspacePageIndicator extends View implements Insettable, PageIndi
         int lineLeft = (int) (progress * (availableWidth - lineWidth));
         int lineRight = lineLeft + lineWidth;
 
-        canvas.drawRoundRect(lineLeft, getHeight() / 2 - mLineHeight / 2, lineRight,
-                getHeight() / 2 + mLineHeight / 2, mLineHeight, mLineHeight, mLinePaint);
+        // canvas.drawRoundRect(lineLeft, getHeight() / 2 - mLineHeight / 2, lineRight,
+        //         getHeight() / 2 + mLineHeight / 2, mLineHeight, mLineHeight, mLinePaint);
     }
 
     @Override
diff --git a/src/com/sprd/ext/pageindicators/WorkspacePageIndicatorDots.java b/src/com/sprd/ext/pageindicators/WorkspacePageIndicatorDots.java                                                  
index 4aa1c5afb5..4ffe9d54b8 100755                                                             
--- a/src/com/sprd/ext/pageindicators/WorkspacePageIndicatorDots.java                           
+++ b/src/com/sprd/ext/pageindicators/WorkspacePageIndicatorDots.java                           
@@ -63,24 +63,26 @@ public class WorkspacePageIndicatorDots extends WorkspaceBasePageIndicator {
     protected void onDraw(Canvas canvas) {                                                     
         int availableWidth = getWidth();                                                       
         //Recalculate dot radius size                                                          
-        mDotRadius = Math.min(MAX_DOTRADIUS, (float) availableWidth / (3 * mNumPages - 1));    
-                                                                                               
-        float circleGap = 3 * mDotRadius;                                                      
-        // Draw all page indicators;                                                           
-        float startX = (availableWidth - mNumPages * circleGap + mDotRadius) / 2;              
-        float x = startX + mDotRadius;                                                         
-        float y = (float) canvas.getHeight() / 2;                                              
-                                                                                               
-        if (mIsRtl) {                                                                          
-            x = availableWidth - x;                                                            
-            circleGap = -circleGap;                                                            
-        }                                                                                      
-        mCirclePaint.setColor(mActiveColor);                                                   
-        for (int i = 0; i < mNumPages; i++) {                                                  
-            mCirclePaint.setAlpha((i == mActivePage ? mActiveAlpha : mInActiveAlpha));         
-            canvas.drawCircle(x, y, mDotRadius, mCirclePaint);                                 
-            x += circleGap;                                                                    
-        }                                                                                      
+        //^M                                                                                   
+        //隐藏桌面圆点指示器^M                                                                 
+        // mDotRadius = Math.min(MAX_DOTRADIUS, (float) availableWidth / (3 * mNumPages - 1)); 
^M                                                                                              
+^M                                                                                             
+        // float circleGap = 3 * mDotRadius;^M                                                 
+        // // Draw all page indicators;^M                                                      
+        // float startX = (availableWidth - mNumPages * circleGap + mDotRadius) / 2;^M         
+        // float x = startX + mDotRadius;^M                                                    
+        // float y = (float) canvas.getHeight() / 2;^M                                         
+^M                                                                                             
+        // if (mIsRtl) {^M                                                                     
+        //     x = availableWidth - x;^M                                                       
+        //     circleGap = -circleGap;^M                                                       
+        // }^M                                                                                 
+        // }^M
+        // mCirclePaint.setColor(mActiveColor);^M                                              
+        // for (int i = 0; i < mNumPages; i++) {^M                                             
+        //     mCirclePaint.setAlpha((i == mActivePage ? mActiveAlpha : mInActiveAlpha));^M    
+        //     canvas.drawCircle(x, y, mDotRadius, mCirclePaint);^M                            
+        //     x += circleGap;^M                                                               
+        // }^M                                                                                 
+        //^M
+        //隐藏桌面圆点指示器^M
+        // mDotRadius = Math.min(MAX_DOTRADIUS, (float) availableWidth / (3 * mNumPages - 1));
^M
+^M
+        // float circleGap = 3 * mDotRadius;^M
+        // // Draw all page indicators;^M
+        // float startX = (availableWidth - mNumPages * circleGap + mDotRadius) / 2;^M
+        // float x = startX + mDotRadius;^M
+        // float y = (float) canvas.getHeight() / 2;^M
+^M
+        // if (mIsRtl) {^M
+        //     x = availableWidth - x;^M
+        //     circleGap = -circleGap;^M
+        // }^M
+        // mCirclePaint.setColor(mActiveColor);^M
+        // for (int i = 0; i < mNumPages; i++) {^M
+        //     mCirclePaint.setAlpha((i == mActivePage ? mActiveAlpha : mInActiveAlpha));^M
+        //     canvas.drawCircle(x, y, mDotRadius, mCirclePaint);^M
+        //     x += circleGap;^M
+        // }^M
     } 

以上就是分两个部分,一个是文件夹中的指示器隐藏,一个是桌面的隐藏。

总结:他的指示器圆点(横线)是用view的ondraw方法绘制出来的,我们在这个地方注释其逻辑,禁止其绘制就可以了。


http://www.kler.cn/news/305671.html

相关文章:

  • 外包干了半年,快要废了。。。
  • 【c++】类和对象详解
  • React18快速入门
  • 切换淘宝最新镜像源npm
  • VSCode学习笔记
  • Linux开发讲课44---linux性能查看命令和工具
  • 在职研生活学习--20240907
  • FaaS(Function as a Service)框架集成springboot
  • 【数据结构-一维差分】力扣2848. 与车相交的点
  • MySQL 8.0授权语法变更及解决方案‌
  • 点云深度学习系列:Sam2Point——基于提示的点云分割
  • 2024上半年国产操作系统卖疯了!麒麟4.9亿,统信1.9亿!
  • 架构设计:负责网络、定时、坐下、站起、重连等,支持多类游戏的无锁房间
  • Oracle发送邮件功能:配置自动化发信指南?
  • Redis搭建集成
  • 【ACM独立出版】第二届物联网与云计算技术国际学术会议 (IoTCCT 2024,9月27-29)
  • BookStack在线文档管理系统本地Docker部署与远程访问详细教程
  • 安全运维工程师学习路线
  • Unity实现自己的协程系统
  • RFB_modified模块的作用?和ASPP模块的区别?
  • GLSL 棋盘shader
  • STM32 HAL freertos零基础(六)计数型信号量
  • 十二,Spring Boot 异常处理(自定义异常页面,全局异常,自定义异常)
  • 视频融合共享平台LntonAIServer视频分析平台噪声监测优势
  • 【计算机网络 - 基础问题】每日 3 题(五)
  • 【数据结构】8——图3,十字链表,邻接多重表
  • Android Activity组件与进程启动间关系
  • 电子电气架构——中央计算的软件定义汽车架构
  • 流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?
  • 如何用SQL Server和Oracle进行数据同步?