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

哈尔滨哪里有做网站的ipad做电影网站

哈尔滨哪里有做网站的,ipad做电影网站,婚纱摄影东莞网站建设技术支持,建设银行余额查询网站时间:2020/10/10 之前公司不允许csdn,笔记写在其它地方。最近整理过来 1、图标形状的overlay frameworks\base\packages\overlays目录 2、某一种形状的源码 默认配置在framework/base/core/res/res res下面放着图标形状的mask路径,这个值是一个矢量图…

时间:2020/10/10
之前公司不允许csdn,笔记写在其它地方。最近整理过来

1、图标形状的overlay

frameworks\base\packages\overlays目录
在这里插入图片描述

2、某一种形状的源码

在这里插入图片描述
默认配置在framework/base/core/res/res
res下面放着图标形状的mask路径,这个值是一个矢量图转换成svg图的path

<string name="config_icon_mask" translatable="false">"M50,0 C10,0 0,10 0,50 0,90 10,100 50,100 90,100 100,90 100,50 100,10 90,0 50,0 Z"</string>

IconShapeCircleOverlay

mk文件定义model名
LOCAL_PACKAGE_NAME := IconShapeCircleOverlay
xml配置特定字串保证自己的overlay能被系统识别
android:isStatic 是否默认启用<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.android.theme.icon.squircle"android:versionCode="1"android:versionName="1.0"><overlay android:targetPackage="android"android:category="android.theme.customization.adaptive_icon_shape"android:isStatic="true"android:priority="1"/><application android:label="@string/icon_shape_squircle_overlay" android:hasCode="false"/>
</manifest>

另外:
要让系统在编译的时候把自己的apk编进去,还需要在frameworks/base/packages/overlays/Android.mk
中加上自己mk里写的modelName。

3、获取系统支持的overlay列表

可以看出主要就是xml里的这两个值
private String mCategory = "android.theme.customization.adaptive_icon_shape";
private static final String OVERLAY_TARGET_PACKAGE = "android";private List<OverlayInfo> getOverlayInfos() {final List<OverlayInfo> filteredInfos = new ArrayList<>();try {List<OverlayInfo> overlayInfos = mOverlayManager.getOverlayInfosForTarget(OVERLAY_TARGET_PACKAGE, USER_SYSTEM);for (OverlayInfo overlayInfo : overlayInfos) {if (mCategory.equals(overlayInfo.category)) {filteredInfos.add(overlayInfo);}}} catch (RemoteException re) {throw re.rethrowFromSystemServer();}filteredInfos.sort(OVERLAY_INFO_COMPARATOR);return filteredInfos;}

如果有需求,可以做一个选择菜单给用户切换不同的形状。
之前的代码开发者选项里好像是有切换图标形状的菜单,新的版本里找不到了。

//获取mOverlayManager
IOverlayManager mOverlayManager = IOverlayManager.Stub.asInterface(ServiceManager.getService(Context.OVERLAY_SERVICE));
//启用指定包名的overlay
mOverlayManager.setEnabledExclusiveInCategory(packageName,USER_SYSTEM);

4、权限

调用mOverlayManager.setEnabledExclusiveInCategory方法可能需要以下权限,否则会报错

    <uses-permission android:name="android.permission.MANAGE_USERS" /><uses-permission android:name="android.permission.CHANGE_OVERLAY_PACKAGES"/>

权限检测在
frameworks\base\services\core\java\com\android\server\om\OverlayActorEnforcer.java

    void enforceActor(@NonNull OverlayInfo overlayInfo, @NonNull String methodName,int callingUid, int userId) throws SecurityException {ActorState actorState = isAllowedActor(methodName, overlayInfo, callingUid, userId);if (actorState == ActorState.ALLOWED) {return;}String targetOverlayableName = overlayInfo.targetOverlayableName;throw new SecurityException("UID" + callingUid + " is not allowed to call "+ methodName + " for "+ (TextUtils.isEmpty(targetOverlayableName) ? "" : (targetOverlayableName + " in "))+ overlayInfo.targetPackageName + (DEBUG_REASON ? (" because " + actorState) : ""));}

有兴趣的可以看一下isAllowedActor方法

http://www.yayakq.cn/news/353540/

相关文章:

  • 建一个国外网站多少钱php网站数据库怎样导入
  • 网站名称和备案不一样软文广告属于什么营销
  • 网站怎么申请支付宝接口做静态网站成本
  • 广州网站建设正规公司wordpress标签云怎么添加
  • 域名展示网站源码网站制作明细清单
  • 沈阳做网站哪家最便宜四川建设银行手机银行下载官方网站下载安装
  • 网站开发申请报告wordpress 免费APP
  • 电脑手机自适应网站的建设提供大良网站建设
  • 网站模板怎么设计软件在线api
  • 西数 网站建设屏蔽网页 的网站备案
  • 编程学习入门网站可以合成装备的传奇手游
  • 合肥网站建设公司 千鸟闪闪字体设计网页
  • 中国建设银行网站慢php 开源企业网站
  • 计算机网站建设好不好怎么做企业网站排名
  • 石家庄整站优化技术上海开本建设工程有限公司
  • 做照片书网站好网站注册局
  • 宝贝做网站木马设计
  • 网站排名总是不稳定wordpress 08影院
  • 镇江品牌网站建设邵阳学院研究生与学科建设处网站
  • 南京网站维护公司有哪些wordpress 当前页面 信息 输出
  • 7万字短篇小说哪家网站做的好系统集成项目管理中级职称
  • 株洲网站建设网站建设北京公司车牌指标
  • 瀑布流响应式网站模板青岛网站制作
  • 网站开发培训机构哪个好爱网站免费一站二站
  • 做网站用什么插件怎样建设网站施工
  • 做爰在线网站北京网站建设套餐
  • 可以免费建手机网站建站行业解决方案
  • 可以做早安图片的网站响应式网站建设多少钱
  • 东莞市微信网站建设品牌外贸网站改版公司哪家好
  • 网站做下载功能制作一个网页需要花钱吗