1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

EasylauncherをVector Assetsで使う

Posted at

TL;DR

Easylauncher(https://github.com/akaita/easylauncher-gradle-plugin) というAndroidアプリのランチャーアイコンに付加情報をつけてくれるGradle Pluginがあります。

Adaptive Icon対応もしているのですが、いまのところVector Assetsを使用した場合に対応していません。
LayerDrawableを使用することで、いちおうVector Assetsに対応する事が出来たのでその方法をまとめています。

🧐 Attention

Pixel3のホームアプリ(Pixel Launcher)でしか動作確認していません。他のホームアプリだと動かないかもしれません。

リリースビルドへの影響が気になる場合、リリースビルド用のresディレクトリに変更前のic_launcher.xmlをコピーしておき、リリースビルドではLayerDrawableが使用されないようにしておくと安心です。

🍽 Before

現在のic_launcher.xmlの記述が次の様になっており、<forground>タグでVectorDrawableが指定されています。
このときに<background>タグで指定するDrawableはVectorDrawableでもColorDrawableでも構いません

res/mipmap-v26/ic_launcher.xml
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
    <background android:drawable="@drawable/ic_launcher_background" />
    <foreground android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>

💪 Operation

1.リボン描画用の透過画像を作成

108 x 108 dpの透明なPNGファイルを作成し、drawable_xxdpi/ic_launcher_foreground_ribbonのような名称で保存します。
※ mdpi 〜 xxxdpiまですべての画像を置いても、デバッグ用なので手抜きしてxxdpiだけでもOKです。

↓↓↓↓↓ ココにxxhdpi用の透過画像を貼っています ↓↓↓↓↓
ic_launcher_foreground_ribbon.png
↑↑↑↑↑ ココにxxhdpi用の透過画像を貼っています ↑↑↑↑↑

2.本来のフォアグラウンド画像とリボン描画用の透明画像を重ねたLayerDrawableを作成

次の内容のdrawable/ic_launcher_foreground_with_ribbon.xmlを作成します。

res/drawable/ic_launcher_foreground_with_ribbon.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/ic_launcher_foreground" />
    <item
        android:drawable="@drawable/ic_launcher_foreground_ribbon" />
</layer-list>

3.フォアグラウンド画像としてLayerDrawableを指定する

res/mipmap-v26/ic_launcher.xmlの内容を以下のように変更します。

res/mipmap-v26/ic_launcher.xml
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
    <background android:drawable="@drawable/ic_launcher_background" />
    <foreground android:drawable="@drawable/ic_launcher_foreground_with_ribbon" />
</adaptive-icon>

4.build.gradleにEasylauncher用のスクリプトを追加する

build.gradleのeasylauncherセクションに以下のような内容を記述します。
ここでforegroundIconNamesにリボン描画用の透明画像のDrawableを指定します。

詳細なEasylauncherのカスタマイズ方法についてはgithubのREADMEを参照してください。
https://github.com/akaita/easylauncher-gradle-plugin

app/build.gradle
easylauncher {
    foregroundIconNames "@drawable/ic_launcher_foreground_ribbon"

    buildTypes {
        debug {
            filters = customColorRibbonFilter("開発版", "#DF3A01", "#FFFFFF", "bottom")
        }
    }
}

🤝 Result

device-2019-03-27-024017.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?