Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can I use Android 8.0 Adaptive Icons for a Flutter app?

How can I use an Adaptive Icon for my Flutter app on Android 8.0 and up? The Create Image Asset dialog in Android Studio says "Project must be built with SDK 26 or later to use adaptive icons", even though my android build.gradle has CompileSDKVersion set to 27. If I define the icon in XML, it doesn't work, it seems to just use the regular legacy app icon.

like image 968
Piggeh Person Avatar asked Jun 09 '18 19:06

Piggeh Person


People also ask

How do you use the adaptive icon in Flutter?

Now that you have an image, create a directory in your Flutter app called assets if you do not have one already. After you've created your assets directory, move your icon image into it. The next thing you need to do is head over to your pubspec. yaml file, and, under dependencies, add flutter_launcher_icons .

How do you make adaptive icons on Android?

Add your adaptive icon to your app xml , create alternative drawable resources in your app for backward-compatibility with Android 8.0 (API level 26). You can then use the <adaptive-icon> element to define the foreground, background, and monochromatic layer drawables for your icons.


1 Answers

They work perfectly fine.

Solution

To work with the dialog, you will need to open your Android module in Android Studio.
Flutter.dev article

Navigation is the following in the menu bar: Tools ~> Flutter ~> Open Android module in Android Studio or right-click anywhere in your android folder in the project view and select Flutter ~> Open Android module in Android Studio.

Now you will be able to use the asset dialog normally.

If it still does not work (this does not happen)

If your dialog does not work in your Flutter project, you can easily create an adaptive icon in an Android project and then copy the necessary file, which are:

  • ic_launcher_background.xml (drawable), I think that this is located in values if you chose a color

  • ic_launcher_foreground.xml (drawable-v24)

  • ic_launcher.xml and if you created it ic_launcher_round.xml (mipmap-anydpi-v26)

  • all ic_launcher.png and ic_launcher_round.png (mipmap-hdpi to mipmap-xxxhdpi) for legacy support. I suppose that these are not needed if your minimum SDK requirement is higher than 25

This would cover everything for me. Now, in your AndroidManifest.xml specify android:icon="@mipmap/ic_launcher" for your application, i.e. in your <application> tag, and if needed android:roundIcon:"@mipmap/ic_launcher_round".

like image 58
creativecreatorormaybenot Avatar answered Sep 18 '22 17:09

creativecreatorormaybenot