【问题标题】:How to show app icon in the action bar?如何在操作栏中显示应用程序图标?
【发布时间】:2014-12-14 17:28:09
【问题描述】:

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>

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

【问题讨论】:

标签: javascript android android-actionbar


【解决方案1】:

尝试在 onCreate 之后执行此操作

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

【讨论】:

  • 现在我有一个图标,但它不是我的图标。图标是一个箭头。我该怎么做才能更改为我的图标而不是箭头?
  • getActionbar().setIcon(R.drawable.my_icon);
  • 这行不通。查看我的操作栏:Action Bar
【解决方案2】:

在此处查看答案 - V21 中不存在,因为样式指南已更改:No App Icon on ActionBar

【讨论】:

    【解决方案3】:

    您可以直接使用

    访问主图像视图
    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
    }
    

    祝你好运。

    【讨论】:

    • 该代码用于 api 11。api 9 有代码吗?此外,当我启动 apk 时,它不起作用。一条消息说:很遗憾,您的应用已关闭
    【解决方案4】:

    您可以通过清单文件在 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 中查看有关箭头的更多信息。

    希望能帮到你!

    【讨论】:

    • 是的,我在 drawables 文件夹中有图标 (icona.png)。可绘制对象运行良好,因为背景图像运行良好,并且在 android studio 中,当 Iwrite :android:icon="@drawable/icona" 在屏幕左侧的清单中显示图标时。
    【解决方案5】:

    试试这个

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

    【讨论】:

      猜你喜欢
      • 2015-01-06
      • 1970-01-01
      • 2015-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-08
      • 1970-01-01
      相关资源
      最近更新 更多