【问题标题】:Remove icon from launcher从启动器中删除图标
【发布时间】:2013-04-05 12:12:34
【问题描述】:

这是最常见的问题,没有人知道如何解决它......

例如:

<application
    android:allowBackup="true"
    android:icon="@drawable/add"
    android:theme="@style/CustomTheme"
    android:showAsAction="ifRoom|withText">

现在我需要隐藏 android:icon 或者我只想删除它

<application
    android:allowBackup="true"
    android:theme="@style/CustomTheme"
    android:showAsAction="ifRoom|withText">

但在这种情况下,我有默认的 android 图标 -_- 可以永久删除此图标吗?

【问题讨论】:

  • 你试过getSupportActionBar().setDisplayUseLogoEnabled(false); ?
  • getSupportActionBar() 未定义,getActionBar() 仅适用于 api 11+,但我需要对 api 8 进行任何解析。你知道为什么 getSupportActionBar() 方法未定义而我无法导入吗?跨度>
  • 你在使用 ActionBarSherlock 吗?
  • 不,我没有使用这个库。它是创建任何操作栏、按钮和类似东西的好库?
  • 是的,它是旧手机的库,用于获取操作栏。您的问题与操作栏有关吗?

标签: java android icons launcher


【解决方案1】:

这可以在下次重启后移除您的启动器图标:

PackageManager pm = getPackageManager();
pm.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

此链接也可以帮助您:

Hide application launcher icon in title bar when activity starts in android

【讨论】:

    【解决方案2】:

    您可以创建自己的图标图片。

    因此,您可以尝试创建具有必要大小且仅由透明背景组成的图片。

    【讨论】:

      【解决方案3】:

      我有办法!几天前我开始学习java和android,所以我的解决方案需要由比我更有经验的人验证。在这里你有解决方案:

      第一步

      在AndroidManifest.xml文件应用部分我们需要声明NoTitleBar主题。

      <application
          ...
          android:theme="@android:style/Theme.NoTitleBar">
      ...
      </application>
      

      第二步

      现在我们的应用程序加载器时没有标题栏(我们设置了 Theme.NoTitleBar),所以我们需要创建它或更改 android:theme。我采取第二种选择,所以:

      public class MainActivity extends SherlockActivity {
      ...
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          setTheme(R.style.AppTheme);
                  ....
          }
          ....
      }
      

      R.style.AppTheme 是我们创建的样式,但我们可以使用任何来自 android API 的可用样式。

      第三步 现在我们的标题栏又回来了,但我们仍然有我们的图标和标题。所以我们需要关闭它,现在我们有两个选项可以做到这一点。首先是当我们使用 android api 11 或更高版本时,我们不需要使用 ActionBarSherlock 库,其次是用于低于 api 11 的应用程序。

      API 11 或更低版本

      ...
      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
          actionBar = getActionBar();
          actionBar.setDisplayShowHomeEnabled(false);
          actionBar.setDisplayShowTitleEnabled(false);
          actionBar.setDisplayShowCustomEnabled(true);
                  ...
      }
      ...
      

      API 11 或更高版本

      ...
      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
          actionBar = getSupportActionBar();
          actionBar.setDisplayShowHomeEnabled(false);
          actionBar.setDisplayShowTitleEnabled(false);
          actionBar.setDisplayShowCustomEnabled(true);
                  ...
      }
      ...
      

      所以,在第一种情况下,我们使用默认的 getActionBar() 来管理 actionBar,但在第二种情况下,我们使用来自 ActionBarSherlock 的 getSupportActionBar

      完成:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-04-25
        • 1970-01-01
        • 1970-01-01
        • 2015-11-09
        • 1970-01-01
        • 1970-01-01
        • 2011-08-22
        • 1970-01-01
        相关资源
        最近更新 更多