从启动器中删除图标

时间:2013-04-05 12:12:34

标签: java android icons launcher

这是最受欢迎的问题,没有人知道如何解决它......

例如:

<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图标-_- 可以永久删除此图标吗?

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

我有一个解决方案!我几天前开始学习java和android,所以我的解决方案需要经验丰富的人来验证。在这里你有解决方案:

<强>步骤1

在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中的任何可用样式。

<强>步骤3 现在我们的标题栏又回来了,但我们仍然有我们的图标和标题。所以我们需要关闭它,现在我们有两个选项可以做到这一点。首先是当我们使用android api 11或更高版本时我们不需要使用ActionBarSherlock libs,第二个是应用程序低于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

完成:)