2016-09-11 11 views
0

アクションバーに、特定のイメージのボタンが表示されます。 enter image description hereアクションバーにボタンイメージを取得する方法

問題を特定するために、私はアクションバーを持っているアンドロイドスタジオのテンプレートを使用して、ドロアブルリソースフォルダ内の自分のpngファイルを指すメニューリストにアイテムを追加しました。ここで

コード:

MainActivity:

package com.pm.pmactionbaricon; 

import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.Menu; 

public class MainActivity extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
    } 
} 

メニューの定義:

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:context="com.pm.pmactionbaricon.MainActivity"> 
    <item 
     android:id="@+id/action_settings" 
     android:orderInCategory="100" 
     android:title="@string/action_settings" 
     app:showAsAction="never" /> 

    <item 
     android:id="@+id/distance_button" 
     android:icon="@drawable/distance_waiting" 
     android:title="@string/Distance" 
     android:orderInCategory="100" 
     android:showAsAction="ifRoom"/> 
</menu> 

メインのレイアウトファイル:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context="com.pm.pmactionbaricon.MainActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:popupTheme="@style/AppTheme.PopupOverlay" /> 

    </android.support.design.widget.AppBarLayout> 

    <include layout="@layout/content_main" /> 


</android.support.design.widget.CoordinatorLayout> 

マニフェストファイル:

<?xml version="1.0" encoding="utf-8"?> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme.NoActionBar"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

私はこれから取得することは、十分な余裕があるにもかかわらず、アイコンなしのアクションバーである: enter image description here

関連するメニュー項目が代わりに表示されます。オーバーフローメニュー: enter image description here

多分私はこれについての基本的な誤解を持っています。説明は大歓迎です。 Androidでこの簡単な作業を達成することはできないのですか?カスタムイメージをボタンとして表示可能にしたり、アクションバーのサイズやサイズをコントロールするには、どのメソッドを適用する必要がありますか?

答えて

1

custom_toolbar.xmlを作成して、あなたのレイアウトに含める。()

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    app:layout_collapseMode="pin" 
    android:id="@+id/toolbar" 
    android:layout_height="?attr/actionBarSize" 
    android:padding="0dp" 
    android:layout_width="match_parent" 
    android:background="@android:color/transparent" 
    > 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="left"> 


    //define your own layout here ,whatever you want to include 

    </RelativeLayout> 
</android.support.v7.widget.Toolbar> 
+0

<ツールバー –

+0

おかげでたくさん持っているところ、このよう/>.Inレイアウト=「@レイアウト/ custom_toolbarは」それを含める含めます私をサポートするために。私はあなたの助言に従った。今私はいくつかの進歩があり、私のアプリのタイトル(アイコンテスト)と同じ垂直位置にツールバーに表示される背景として私のpngのボタンを定義することができます。私が解決できなかったことは、以下の現象を取り除くことです:アクションバーは現在2倍の高さを持っています。私の元のActionbarの下に私は今空の空間を持っています。これについての説明もありますか?おかげでPeter –

+0

あなたは画像を共有できます –

関連する問題