如何开发Android图标包?

RT,想开发一个图标包,求各位大哥给点思路!

阅读 4k
1 个回答

首先必备的环境您应该有了,既然您是做Android Q图标包,那JDK,Android Studio,Git之类的得有,
然后简单粗暴,拉取仓库简单轻量的图标包APP模板,直接从1开始,虽然仓库有点旧了,按照思路您可以找找比较新的,站在巨人的肩膀上还是能看得远些,至少思路有了。
在然后我还是Copy一下二次开发的内容,出处wiki:


门槛

具备基本的 Android 开发技能。如果您是新手,在熟悉 Android HelloWorld 的开发后也可上手。

导入项目并配置

  • NanoIconPack 为 Android Studio 项目。请从 GitHub 下载解压并在 Android Studio 中打开;或直接在 Android Studio 中导入 NanoIconPack(如何导入请查看帮助)。

    项目根目录有两个核心子目录:/nanoiconpack为库代码,/app为 Sample APP 代码。一般情况下,只需要改动/app的代码即可,/nanoiconpack不需要修改。以下步骤也只会涉及到改动/app

    关于其他目录:

    /tools为相关工具及其代码。

  • 配置APP包名、版本等

    修改build.gradle

    android {
        defaultConfig {
            // Package name format: com.[your_name].iconpack.[name_of_your_icon_pack]
            applicationId "com.by_syk.iconpack.sample"
            versionCode 17070300
            // Version name format: [version].[num_of_icons]
            versionName "2.0.0.7"
        }
    }
    
  • 配置APP应用名、版权信息等

    修改strings.xml

    <!-- App name -->
    <string name="app_name">NanoIconPack Sample</string>
    
    <!-- For Apex Launcher, means icon pack author -->
    <string name="developer_name">By_syk</string>
    
    <!-- About information -->
    <!-- Keep its summary EMPTY (NOT DELETE IT) if you don't want to show certain line. -->
    <!-- For summary text, you could try to use such codes:
         xxx
         [xxx](copy:xxx)
         [xxx](email:xxx)
         [xxx](alipay:xxx|xxx)
         [xxx](qrcode:xxx)
         [xxx](xxx)
         -->
    <string name="preference_icons_summary_note"></string>
    <string name="preference_icons_title_author">Icon pack author</string>
    <string name="preference_icons_summary_author">[@By_syk](copy:@By_syk)</string>
    <string name="preference_icons_title_contact">Contact author</string>
    <string name="preference_icons_summary_contact">[By_syk@163.com](email:By_syk@163.com)</string>
    <string name="preference_icons_title_donate">Donate via Alipay</string>
    <string name="preference_icons_summary_donate">[By_syk@163.com](alipay:https://qr.alipay.com/aex05154fiiurupx5ai0dd1|By_syk@163.com)</string>
    <string name="preference_icons_title_todo_1"></string>
    <string name="preference_icons_summary_todo_1"></string>
    <string name="preference_icons_title_copyright">Copyright</string>
    <string name="preference_icons_summary_copyright">Copyright &#169; 2017 By_syk. All rights reserved.</string>
    <string name="preference_app_title_todo_1"></string>
    <string name="preference_app_summary_todo_1"></string>
    
    strings.xml分布在/values/values-zh
  • 配置APP图标

    替换ic_launcher.png

    ic_launcher.png分布在/mipmap-hdpi/mipmap-xhdpi/mipmap-xxhdpi/mipmap-xxxhdpi
  • 选一个APP主题色

    修改colors.xml

    <color name="color_primary">#607d8b</color>
    <color name="color_primary_dark">#455a64</color>
    <color name="color_accent">#ff5252</color>
    
    如果你不太熟悉颜色的选取,可以试试帮助配色的工具——MD配色参考

准备图标

  • 尺寸

    图标尺寸以192*192为最佳,144*144224*224也是不错的选择,但非强制,只是注意别太大,太大会引起一些问题,比如在 Nova Launcher 中手动替换图标异常。

    为了使图标在启动器中看起来不至于太小或太大,建议参考以下栅格线处理图标主体与边缘之间的留白。(栅格线图基于Material design guidelines - Style -Icons制作)

    icon_grid

  • 命名

    • 图标文件名(不包括.png扩展名)允许小写字母+数字+下划线([a-z\d_]+
    • 不能数字打头(\D.*
    • 重名则照_1添加后缀
    • 避免与上一条重名规则冲突,如相机360应命名为camera360而不是camera_360.png
> 合法例:`gallery.png`、`chrome_dev.png`、`phone_1.png`
> 
> 非法例:`Calendar.png`、`500px.png`、`camera_360.png`

添加图标

以为“日历”APP适配图标为例。

  • 将缩放好的192尺寸版本日历图标命名为calendar.png,复制到/drawable-nodpi

    为在APP内展示图标时提供更好的视觉效果,您还可以为所有图标提供一个同名384尺寸版本,复制到/mipmap-nodpi文件夹。

    高清版本图标用途将仅限于展示,不用于应用到启动器。

    添加了高清图标安装包体积会因此增大,请自行斟酌。

  • 修改icon_pack.xml,该文件记录了全部图标的文件名及其目标APP的应用名。添加<item />

    <!-- File name (no suffix) list of all icons in /res/drawable-nodpi/ -->
    <string-array name="icons">
        <item>calendar</item>
    </string-array>
    
    <!-- Corresponding app name list of all icons in /res/drawable-nodpi/ -->
    <!-- Just KEEP IT EMPTY BUT DO NOT DELETE IT if you do not want to collect app name list. -->
    <string-array name="icon_labels">
        <item>Calendar</item>
    </string-array>
    
    数组icon_labels用于记录目标APP名,属于选用特性,如果觉得麻烦可以不启动,直接将其留空就行(无<item />);如果使用它,则请确保数组icon_labelsicons元素一一对应,并且数目一致,否则会导致APP内不显示图标。
  • 修改drawable.xml,该文件用于为 Nova 等启动器提供手选图标列表。添加<item />

    <category title="Basic" /><!-- Copy basic icons here from All category -->
    <item drawable="calendar" />
    
    <category title="All" /><!-- All icons here -->
    <item drawable="calendar" />
    
  • 修改appfilter.xml,该文件定义了图标与目标APP之间的匹配关系,启动器据此自动为所有APP替换图标。添加<item />

    <!-- <item component="ComponentInfo{[package_name]/[launcher_activity_name]}" drawable="[icon_file_name]" /> -->
    <item
        component="ComponentInfo{com.google.android.calendar/com.android.calendar.AllInOneActivity}"
        drawable="calendar" />
    
    • *

如何添加动态日历图标?

部分启动器支持部分日历APP(比如谷歌日历)的按日更新图标功能,我们可以为其添加支持。

步骤基本与添加普通图标一致,只是在第一步的命名和最后一步修改appfilter.xml不同。下面就讲解这两步的做法。

  • 准备从1日到31日的31枚日历图标(不能少,否则无效),依次命名为calendar_d1.png~calendar_d31.png(也可以是其他命名,但名末的数字序号必须有)。
  • 修改appfilter.xml

    <!-- The whole 31 icons are required, or it doesn't work. -->
    <calendar
        component="ComponentInfo{com.google.android.calendar/com.android.calendar.AllInOneActivity}"
        prefix="calendar_d" />
    • *

以上内容希望能帮到您!

推荐问题
宣传栏