【问题标题】:Display two icons on Android. How to reduce the number of icons to one在 Android 上显示两个图标。如何将图标数量减少到一个
【发布时间】:2022-02-21 20:50:32
【问题描述】:

我正在使用 Xamarin 进行开发。 当我为 Android 创建启动画面时,我遇到了一个问题。 当我在真实设备上构建它时,手机上会显示两个图标。 当我卸载其中一个时,两个都被删除。

这是什么意思? 我的设置有问题吗? 请让我知道如何解决它。 非常感谢。 我采取的步骤如下

启动画面 启动画面将在 Android 中实现。 (1) 将 SplashActivity 添加到 Droid。 (2) 将MainActivity的属性由MainTheme改为SplashTheme。

    [Activity(Label = "RG2022", 
        Icon = "@mipmap/icon",
        //Theme = "@style/MainTheme", //comment out
        Theme = "@style/SplashTheme", //change to this

(3)添加MainActivity Oncreate

    Window.RequestFeature(Android.Views.WindowFeatures.ActionBar);
    SetTheme(Resource.Style.MainTheme);

(4)添加RG2022\RG2022\RG2022.Android\Resources\drawable\splash_screen.xml

<?xml version="1.0" encoding="UTF-8" ?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="rectangle" >
      <solid android:color="#00000000" />
    </shape>
  </item>
    <item>
    <bitmap
        android:src="@drawable/splash"
        android:tileMode="disabled"
        android:gravity="center"/>
  </item>
</layer-list>

(5)添加RG2022\RG2022\RG2022.Android\Resources\values\styles.xml

  <style name="SplashTheme" parent ="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowBackground">@drawable/splash_screen</item>
    <item name="android:windowNoTitle">true</item>  
    <item name="android:windowFullscreen">true</item>  
    <item name="android:windowContentOverlay">@null</item>  
    <item name="android:windowActionBar">true</item>
  </style>

(6)在drowable处添加Splash.png AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.companyname.rg2022" android:installLocation="auto">
    <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="30" />
    <application android:icon="@mipmap/icon" android:theme="@style/MainTheme" android:label="RG2022"></application>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
</manifest>

https://github.com/misakikaoru/SG2022

【问题讨论】:

  • 您可以在 Android 上使用自己的图标公开多个活动。但我不确定如何使用 Xamarin 激活此功能,因为您的 AndroidManifest.xml 看起来太空了(根本没有定义活动)。

标签: c# android xamarin


【解决方案1】:

您可以创建两个活动。一个是闪屏活动,一个是正常活动。

SplashScreenActivity:

public class SplashScreenActivity : Activity
{
    ImageView imageView;
    Animation view_animation;
    TextView textview;
    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);
        RequestWindowFeature(Android.Views.WindowFeatures.NoTitle);
        SetContentView (Resource.Layout.SplashScreen);
        imageView = (ImageView)FindViewById(Resource.Id.imageView);
        
        view_animation = AnimationUtils.LoadAnimation(this,Resource.Animation.hyperspace_jump);
         
        imageView.StartAnimation(view_animation);
        view_animation.AnimationEnd += Rotate_AnimationEnd;
        
    }

    private void Rotate_AnimationEnd(object sender, Animation.AnimationEndEventArgs e)
    {
        Finish();
        StartActivity(typeof(MainActivity));
    }
}

主活动:

  protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        SetContentView(Resource.Layout.Main);
        Toast.MakeText(this, "Welcome to MainActivity", ToastLength.Long).Show();
    }

更多细节,你可以参考我之前做的线程。 Android specific animations Xamarin.Forms - Splash screen

【讨论】:

  • 谢谢你的回答。我当前的问题是,当我在实际设备上构建它时,它会在我的手机上显示两个图标。我正在寻找一种将图标数量减少到一个的方法。
  • 为此,我没有显示两个图标。你能提供更多关于这方面的细节吗?也许我误解了你的意思。
  • 谢谢温蒂!你可以在github.com/misakikaoru/SG2022 试试这个项目。请尝试一下。
  • 我能够重现此问题。因为你设置了MainLauncher=true 两次。只在 SplashActivity 中设置,在 MainActivity 中删除。
  • 谢谢温迪!我在 MainActivity 中注释掉 MainLauncher=true。然后 Icon 合二为一!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-22
  • 2012-11-14
  • 1970-01-01
相关资源
最近更新 更多