在Xamarin Forms Android应用程序中,如何指定启动器图标?

时间:2019-06-16 08:44:21

标签: xamarin.forms

我的应用程序设置如下:

{
    [Activity(Label = "Japanese", Icon = "@drawable/ic_launcher_mdpi", Theme = "@style/MainTheme")]
    public class MainActivity : FormsAppCompatActivity
    {

但是文件夹看起来像这样:

enter image description here

我也有这个:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <color android:color="@color/launcher_background"/>
    </item>
    <item>
        <bitmap android:src="@drawable/ic_launcher_xxhdpi"
                android:tileMode="disabled"
                android:gravity="center"
                android:layout_gravity="center"/>
    </item>
</layer-list>

似乎不太正确。

有人可以告诉我如何指定图标并根据设备使用不同大小的版本。

2 个答案:

答案 0 :(得分:0)

  1. 创建一个图标,并将其命名为icon.png,然后将其放在“ drawable”文件夹中(图标的最大分辨率版本)。 注意:您还可以通过创建名称完全相同的相同图标 即icon.png并将它们放在相关文件夹中,来提供不同分辨率(以适应不同设备尺寸)的不同图标。例如,您的192 * 192 icon.png必须放置在drawable-xxxhdpi文件夹中。要了解每个文件夹映射到read this link的分辨率。

  2. 将以上图标作为Android MainActivity中应用程序的启动器图标引用:

    [活动(标签=“我的应用”,图标=“ @ drawable / icon”,主题=“ @ style / MainTheme”,     ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)] 公共类MainActivity:Xamarin.Forms.Platform.Android.FormsAppCompatActivity {     受保护的重写void OnCreate(捆绑包)     {       // ...     } }

您也可以在清单中设置它:

<?xml version="1.0" encoding="utf-8"?>
<manifest >
    <application android:label="My App" android:icon="@drawable/icon"></application>
</manifest>

根据您的照片,您似乎应该删除“ drawable”文件夹中的所有“ ic_launcher _ ***”,并将清单和MainActivity中的应用图标设置为“ @ drawable / ic_laincher”,因为它们已经放在相关文件夹中了。 / p>

答案 1 :(得分:0)

1。 mipmap技术

Android在API级别17中添加了mipmap技术,并支持mipmap技术来渲染位图图像,以提高渲染速度和质量。

通过位图方法public final void setHasMipMap (Boolean hasMipMap),API可以使系统渲染器尝试打开位图mipmap技术。但是,此方法只能用于建议系统打开此功能,并且由系统决定是否实际打开该功能。 res目录下的mipmap和drawable之间的区别在于此设置是否启用之间的区别。默认情况下,mipmap目录setHasMipMap中的图像为true,可绘制setHasMipMap为false。

2。为什么要使用mipmap文件夹?

不同设备上的不同主屏幕启动器应用程序会以各种分辨率显示应用程序启动器图标。当应用程序资源优化技术删除了未使用的屏幕密度的资源时,启动器图标看起来会模糊不清,因为启动器应用程序必须放大较低分辨率的图标才能显示。为避免这些显示问题,应用程序应使用mipmap /资源文件夹作为启动器图标。 Android系统会保留这些资源,而不考虑密度剥离,并确保启动器应用程序可以选择分辨率最高的图标进行显示。

3。使用mipmap文件夹

通过将启动器图标的所有密度移动到特定于密度的res/mipmap/文件夹(例如res/mipmap-mdpi/res/mipmap-xxxhdpi/)中,确保启动器应用程序为应用程序显示高分辨率图标。 mipmap/folders替换启动器图标的drawable /文件夹。对于xxhpdi启动器图标,请确保添加分辨率更高的xxxhdpi图标版本,以增强高分辨率设备上图标的视觉体验。

注意:

1。即使您为所有设备都构建了一个APK,仍是将启动器图标移至mipmap/文件夹的最佳实践。

2。mipmap仅用于启动器图标,因此其余资源图像仍应位于我们的drawable目录中。