如何在操作栏中显示应用图标

How to show app icon in the action bar?

本文关键字:显示 应用 图标 操作      更新时间:2023-09-26

n 操作栏仅显示标题,应用程序图标处于隐藏状态。如何显示应用程序图标?

我尝试了很多东西,例如徽标和许多其他代码,但一切都有效。

我的活动:

package com.example.myapp;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.MenuItem;
public class MyActivity extends ActionBarActivity {
    private InterstitialAd interstitial;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);        
    }
}

我的清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapp" >
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <application
        android:allowBackup="true"
        android:icon="@drawable/icona"
        android:label="@string/app_name"
        android:theme="@style/Theme.AppCompat.Light.DarkActionBar"  >
        <meta-data android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version"/>
        <activity
            android:name=".MyActivity"
            android:label="@string/app_name"
            android:theme="@style/Theme.AppCompat.Light.DarkActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".Main2Activity"
            android:label="@string/title_activity_main2"
            android:theme="@style/Theme.AppCompat.Light.DarkActionBar">
        </activity>
        <activity android:name="com.google.android.gms.ads.AdActivity"
            android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
    </application>
</manifest>

我的布局活动:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:background="@drawable/fons"
    tools:context=".Myctivity">
    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_margin="25sp"
        android:orientation="horizontal" >
            <TextView
                android:id="@+id/textView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="hello world" />
    </LinearLayout>
</RelativeLayout>

在我的主要.xml我没有任何项目

尝试在

创建后执行此操作

getActionbar().setHomeButtonEnabled(true);
getActionbar().setDisplayHomeAsUpEnabled(true);

在这里看到答案 - 它不会出现在 V21 中,因为样式指南已经改变: ActionBar 上没有应用图标

您可以直接访问主映像视图

ImageView imgHome = (ImageView)findViewById(android.R.id.home);

然后,您可以尝试更改背景颜色,填充或检查可见性等,以帮助调试

imgHome.setBackgroundColor(Color.parseColor("#ff0000"));
imgHome.setPadding(30, 0, 30, 0);
if (imgHome.getVisibility() == View.VISIBLE) {
   // visible
} else {
   // not visible
}

祝你好运。

您可以从清单文件中在操作栏中设置图标应用。查看这些行

<application
    android:allowBackup="true"
    android:icon="@drawable/icona"
    android:label="@string/app_name"
    android:theme="@style/Theme.AppCompat.Light.DarkActionBar"  >

因此,@drawable/icona 意味着您在可绘制文件夹中有一个名为"icona"的图标。

res/drawable-ldpi, res/drawable-mdpi ...

因此,将您的icona.png文件添加到上面的文件夹中。

p.s 我不知道你说"图标是一个箭头"是什么意思,但我可以想象你的意思是向上图标按钮。所以这不是您的应用程序图标,您的应用程序图标位于上面的文件夹中。您可以在此处查看有关android Api中箭头的更多信息。

希望对您有所帮助!

试试这个

mActionBar.setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP |ActionBar.DISPLAY_USE_LOGO |ActionBar.DISPLAY_SHOW_CUSTOM |ActionBar.DISPLAY_SHOW_HOME);