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

时间:2014-12-14 17:28:09

标签: javascript android android-actionbar

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

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

MyActivity:

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>

在我的main.xml中,我没有任何项目

5 个答案:

答案 0 :(得分:1)

尝试在onCreate

之后执行此操作
getActionbar().setHomeButtonEnabled(true);
getActionbar().setDisplayHomeAsUpEnabled(true);

答案 1 :(得分:1)

请参阅此处的答案 - 由于样式指南已更改,因此在V21中不存在:No App Icon on ActionBar

答案 2 :(得分:0)

您可以使用

直接访问主图像视图
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
}
祝你好运。

答案 3 :(得分:0)

您可以从清单文件中设置ActionBar中的图标应用。 见这些行

<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 here中看到有关箭头的更多信息。

我希望能帮到你!

答案 4 :(得分:0)

试试这个

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