問題:將launcher界面所有的APP圖標LOGO默認爲-圓形
解決:
vendor/mediatek/proprietary/packages/apps/Launcher3/src/com/android/launcher3/graphics/IconShapeOverride.java
正常情況下:
1. 我們需要打開開發者選項 , 再過一段時間(1分鐘左右)
2. 長按Launcher第一屏界面空白地方—->點擊主屏幕設置—–>(出現)更改圖標形狀
3. 點擊更改圖標形狀, 會出現一個列表裏面有(使用系統默認設置,方形,方圓形,圓形,淚珠形), 公版默認爲“系統默認設置”
注意:如果不打開 開發者選項, 是看不到上述內容的
修改方法:
設置爲不打開開發者選項 依然能出現上述現象
public static boolean isSupported(Context context) {
//@tony add:
if (context != null) {
return true;
}//@end
if (!Utilities.ATLEAST_OREO) {
return false;
}
// Only supported when developer settings is enabled
if (Settings.Global.getInt(context.getContentResolver(),
Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0) != 1) {
return false;
}
try {
if (getSystemResField().get(null) != Resources.getSystem()) {
// Our assumption that mSystem is the system resource is not true.
return false;
}
} catch (Exception e) {
// Ignore, not supported
return false;
}
return getConfigResId() != 0;
}
默認爲圓形
public static final String DEFAULT_ICON_SHAPE_CIRCLE = "M50 0A50 50,0,1,1,50 100A50 50,0,1,1,50 0"; //@tony add
private static String getAppliedValue(Context context) {
return getDevicePrefs(context).getString(KEY_PREFERENCE, DEFAULT_ICON_SHAPE_CIRCLE /* " " */); //@tony modify
}
解釋:
M50 0A50 50,0,1,1,50 100A50 50,0,1,1,50 0:爲代表圖標爲圓形的代碼表示方式
此值在文件:vendor/mediatek/proprietary/packages/apps/Launcher3/res/values/config.xml
中有定義
<!-- Values for icon shape overrides. These should correspond to entries defined
in icon_shape_override_paths_names -->
<string-array translatable="false" name="icon_shape_override_paths_values">
<item></item> ----對應系統默認設置
<item>M50,0L100,0 100,100 0,100 0,0z</item> ----對應方形
<item>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</item> ----對應方圓形
<item>M50 0A50 50,0,1,1,50 100A50 50,0,1,1,50 0</item> ----對應圓形
<item>M50,0A50,50,0,0 1 100,50 L100,85 A15,15,0,0 1 85,100 L50,100 A50,50,0,0 1 50,0z</item> ----對應淚珠形
</string-array>
<string-array translatable="false" name="icon_shape_override_paths_names">
<!-- Option to not change the icon shape on home screen. [CHAR LIMIT=50] -->
<item>@string/icon_shape_system_default</item> ---系統默認設置
<item>@string/icon_shape_square</item> ---方形
<item>@string/icon_shape_squircle</item> ---方圓形
<item>@string/icon_shape_circle</item> ---圓形
<item>@string/icon_shape_teardrop</item> ---淚珠形
</string-array>