这边思路就是,写死底部居中,然后把它里面算法的方法直接注释掉,完全依赖xml来布局。

verride/vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/status_bar_expanded.xml

这里面有个

<com.android.keyguard.LockIconView

里面就有

<ImageView

            android:id="@+id/lock_icon"

我们只需要在父控件<com.android.keyguard.LockIconView中加个布局

android:layout_gravity="center|bottom"

底部居中。

override/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/keyguard/LockIconViewController.java

这个文件里面有算图标的中心位置在哪的,刚开始的时候会调用onViewAttached,这里面我们把updateConfiguration();这个方法注释掉,因为这个方法如下

private void updateConfiguration() {final DisplayMetrics metrics = mView.getContext().getResources().getDisplayMetrics();mWidthPixels = metrics.widthPixels;mHeightPixels = metrics.heightPixels;mBottomPadding = mView.getContext().getResources().getDimensionPixelSize(R.dimen.lock_icon_margin_bottom);mUnlockedLabel = mView.getContext().getResources().getString(R.string.accessibility_unlock_button);mLockedLabel = mView.getContext().getResources().getString(R.string.accessibility_lock_icon);updateLockIconLocation();}

所以又会到updateLockIconLocation这个方法。

private void updateLockIconLocation() {if (mUdfpsSupported) {FingerprintSensorPropertiesInternal props = mAuthController.getUdfpsProps().get(0);mView.setCenterLocation(new PointF(props.sensorLocationX, props.sensorLocationY),props.sensorRadius);} else {mView.setCenterLocation(new PointF(mWidthPixels / 2,mHeightPixels - mBottomPadding /**- sDistAboveKgBottomAreaPx- sLockIconRadiusPx*/), sLockIconRadiusPx);}mView.getHitRect(mSensorTouchLocation);}

这个方法里面实测只走了else,刚开始初始化onViewAttached,里面有一次计算位置,然后就是每次转屏都会用这个方法再算一次。监听的方法是

private final ConfigurationController.ConfigurationListener mConfigurationListener =new ConfigurationController.ConfigurationListener() {

里面主要是

public void onConfigChanged(Configuration newConfig) {if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {/*/tyd.yantao 20220808 force xml to display lockIconupdateConfiguration();//*/updateColors();}

会发现这边源码是一旦转到竖屏又会调用算法再重新设置位置,由于这项目的分辨率改过,所以UI会有问题,原来的算法不行。所以这边也把那个方法注释掉。

解锁图标上面的小字

然后还发现一个问题,就是这个锁在底部会与提示文字重叠,就是提示滑动解锁的文字,所以这边的思路是把底部的文字调高一点。

vendor/mediatek/proprietary/packages/apps/SystemUI/res/values/dimens.xml

keyguard_indication_margin_bottom

我改成了48dp

这个主要是KeyguardBottomAreaView

/status_bar_expanded.xml中就是这个组件,里面应该还有底部的比如说照片快捷 ,只不过这个项目隐藏了吧。

<includelayout="@layout/keyguard_bottom_area"android:visibility="gone" />

锁屏界面的小锁图标UI异常,竖屏不居中,显示在右边。锁屏小锁图标在底部会与提示文字重叠。相关推荐

  1. Android 10.0去除锁屏界面及SystemUI无sim卡拨打紧急电话控件显示

    在开发定制化wifi版平板时,需要去掉所有紧急拨打电话的功能,而紧急拨打电话在锁屏界面 和SystemUI 的下拉快捷里面有这些功能 所以就从这两个地方入手,屏蔽到紧急拨打电话功能 1.SystemU ...

  2. 小程序页面遮罩且不能滚动 + 内容居中显示

    <view class="container"><view class="mask"></view><view cla ...

  3. 小程序中align-items: center竖直方向居中失败解决办法

    垂直居中失败现象 可以看到我在CSS中设置了水平和垂直居中,但是显示出来并没有效果 CSS中代码 .Nav_text{display: flex;align-items: center;justify ...

  4. android 系统 锁屏界面,在安卓手机系统使用Ubuntu漂亮的锁屏界面攻略

    如果你了解Ubuntu系统,那么绝对会被它那漂亮的锁屏界面所吸引.今天我们就让广大Android用户能够提前感受一下Ubuntu系统的锁屏界面,并且不会有任何功能上的影响,所有的通知与信息都可以正常显 ...

  5. 网易云音乐锁屏界面实现

    2019独角兽企业重金招聘Python工程师标准>>> ######最终效果: #完整的实现思路: App如果需要在锁屏界面上显示相关的信息和按钮, 必须先开启远程控制事件(Remo ...

  6. 锁屏界面_强迫症必爱!iPhone怎样隐藏锁屏界面的手电筒、相机图标?

    各位小伙伴,大家好!所有的系统软件程序都有不同程度的bug,没有完美的~所以程序员就需要一直"修修补补",昨天我们分享了iOS13的一个bug,可以隐藏桌面图标!今天我们分享一个小 ...

  7. 强迫症必爱!iPhone怎样隐藏锁屏界面的手电筒、相机图标?

    各位小伙伴,大家好!所有的系统软件程序都有不同程度的bug,没有完美的~所以程序员就需要一直"修修补补",昨天我们分享了iOS13的一个bug,可以隐藏桌面图标!今天我们分享一个小 ...

  8. 锁屏界面提示某些设置已隐藏_iOS 13隐藏手电筒和相机快捷图标

    在iPhone X及其以上的机型,在iOS 13出现一个bug,通过触发这个bug,就可以隐藏手机锁屏界面的手电筒和相机快捷图标,界面更加简洁.那么又是如何操作的呢. 设置教程 首先,锁屏界面在中间上 ...

  9. 锁屏界面提示某些设置已隐藏_息屏还有这些“骚操作”,华为这几个隐藏小功能快用起来...

    现在手机系统更新太快了,有时候根本不知道新手机到底有什么便捷功能! 确实,很多小伙伴换了新手机后,都没怎么对系统深入研究,每当得知的时候就一脸"相见恨晚". 对于经常搞机.喜欢发掘 ...

最新文章

  1. web 服务发布注意事项
  2. R语言dplyr包排序及序号函数实战(row_number、ntile、min_rank、dense_rank、percent_rank、cume_dist)
  3. python使用openweathermap API获取全世界主要城市天气信息
  4. golang flag包使用示例:接收命令行参数
  5. 基于ABP落地领域驱动设计-02.聚合和聚合根的最佳实践和原则
  6. 送福利:ROKID 语音开发板免费送,开启你的物联网之旅
  7. Sentinel 基于Nacos规则持久化-推模式
  8. (二分+区间搜索 )Mountain Walking(poj2110/poj2922)
  9. JMETER java.net.SocketException: Connection reset 报错解决方案
  10. C/C++ 知识点---链表操作
  11. 【IScroll深入学习】解决IScroll疑难杂症
  12. 在mysql 使用binlog日志
  13. 软考信息安全工程师教程第二版
  14. 光伏补贴双轨制仍将延续
  15. swfobject 2.0 使用
  16. 三位如花女人的多彩理财生活
  17. CSS常用五类选择器,经典好文
  18. 无法找到模块“vue-awesome-swiper/dist/ssr”的声明文件
  19. 中小型运维团队如何设计运维自动化平台
  20. Linux设备模型_导航篇

热门文章

  1. [android] 百度地图开发 (三).定位当前位置及getLastKnownLocation获取location总为空问题
  2. Oracle SQL Loader切身实例
  3. Python 实时语音识别
  4. 券商量化交易接口使用要求是什么?
  5. 荧光成像技术原理ICG-PEG-N3/COOH/NH2/Alkyne吲哚菁绿-聚乙二醇-叠氮
  6. wireshark 设置vlan支持
  7. 专抓猫扑美女贴图版!21000张图片浏览~
  8. 谭铁牛院士荣获国际模式识别最高奖
  9. 鲁大师电动车智能化测评第11期
  10. java开发工具IntelliJ IDEA全面教程合集