2015-11-16 2 views
1

Я сделал это, чтобы «раздуть» логотип на панели инструментов:Как правильно разместить логотип панели инструментов?

toolbar.setNavigationIcon(R.drawable.navigationIcon); 
toolbar.getNavigationIcon().setTint(Color.BLUE); 
toolbar.setLogo(R.drawable.logo); 
toolbar.getLogo().methodForFloatRightHere(); 

существует ли какой-то простой метод, который не использует «надуть» на вид?

+0

Дублирование? http://stackoverflow.com/questions/28408768/set-app-icon-to-right-side-in-activity-tool-bar –

+0

НЕ ИСПОЛЬЗУЯ INFLATE, XD, я предпочитаю не помещать больше xml в свой проект –

+0

ответы скажем, как поместить логотип с помощью внешнего вида, по крайней мере, все, что я нашел –

ответ

5

Вы можете добавить собственные представления на панель инструментов.

Ключ android:layout_gravity="center" на логотип ImageView.

<android.support.v7.widget.Toolbar 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?actionBarSize" 
    app:contentInsetEnd="@dimen/material_content_keyline" 
    app:contentInsetStart="@dimen/material_content_keyline" 
    app:navigationContentDescription="@string/abc_action_bar_up_description" 
    app:navigationIcon="@drawable/abc_ic_ab_back_mtrl_am_alpha"> 

    <ImageView 
     android:id="@+id/toolbar_logo" 
     android:layout_width="wrap_content" 
     android:layout_height="40dp" 
     android:layout_gravity="center" 
     android:adjustViewBounds="true" 
     android:src="@drawable/logo"/> 
</android.support.v7.widget.Toolbar> 

Keyline 72dp на телефонах, 80dp на планшетах. Это гарантирует, что любые виды, добавленные в панель инструментов (кроме значков навигации/свернуть и элементов меню), расположены в прямоугольнике по крайней мере 72/80dp слева и справа. Увеличьте, если у вас больше элементов меню, а логотип наклоняется влево.

Если вы не хотите использовать XML:

mToolbar.addView(mLogo, 
    new Toolbar.LayoutParams(Toolbar.LayoutParams.WRAP_CONTENT, Toolbar.LayoutParams.WRAP_CONTENT, Gravity.CENTER)); 
+0

thx для справки –

+1

Или GravityCompat.END без меню завышенного, если вы хотите, чтобы он был выровнен по правому краю. –

+0

Спасибо, тонна .. он работает 100% –

0

Вы должны использовать свой собственный вид, чтобы иметь логотип справа, если вы не разработали приложение в режиме RTL, что я не думаю, что вы действительно хотите. Вы можете добавить RelativeLayout в ваш элемент toolbar в формате XML, а затем установить значение ImageView значение силы тяжести в положение RIGHT.

0

Вы можете создать меню с иконкой своего приложения, которую вы хотите поместить вправо в качестве элемента меню.

Рез/меню/main.xml

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

<item android:id="@+id/menu_item" 
    android:icon="@drawable/ic_application_icon" 
    android:title="@string/aplication_icon" 
    app:showAsAction="always"/> 

А затем надуть его, используя

@Override 
public boolean onCreateOptionsMenu(Menu menu){ 

    getMenuInflater().inflate(R.menu.main, menu); 
    return super.onCreateOptionsMenu(menu); 
} 
0

Вместо использования панели инструментов по умолчанию вы можете использовать панель инструментов с вложенным макетом, в котором вы можете настроить его в соответствии с вашими потребностями. Для например

`

<LinearLayout 
    style="@style/Layout.Wrap" 
    android:background="@color/sky_blue_dark" 
    android:gravity="center_vertical" 
    android:padding="@dimen/fivedp"> 

    <FrameLayout 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_gravity="left|center_vertical" 
     android:layout_weight="0.1"> 

     <ImageView 
      android:id="@+id/fragment_title_bar_menu" 
      style="@style/Layout.Fill" 
      android:src="@drawable/ic_side_menu" 
      android:visibility="gone" /> 

     <ImageView 
      android:id="@+id/fragment_title_bar_previous" 
      style="@style/Layout.Fill" 
      android:src="@drawable/ic_back_selected" 
      android:visibility="gone" /> 
    </FrameLayout> 


    <TextView 
     android:id="@+id/fragment_title_bar_header" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.8" 
     android:gravity="center" 
     android:layout_gravity="center_vertical|center_horizontal" 

     android:textColor="@color/dark_blue_title_bar" 
     android:textSize="@dimen/global_title_text_size" 
     android:textStyle="bold" 
     android:visibility="gone" /> 


    <FrameLayout 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 

     android:layout_gravity="right|center_vertical" 
     android:layout_weight="0.1"> 

     <ImageView 
      android:id="@+id/fragment_title_bar_popup" 
      style="@style/Layout.Fill" 
      android:src="@drawable/ic_benefits_popup_icon" 
      android:visibility="gone" /> 

     <ImageView 
      android:id="@+id/fragment_title_bar_cart" 
      style="@style/Layout.Fill" 
      android:src="@drawable/ic_title_bar_cart" 
      android:visibility="gone" /> 

     <ImageView 
      android:id="@+id/fragment_title_bar_edit_profile" 
      style="@style/Layout.Fill" 
      android:src="@drawable/ic_title_bar_edit_profile" 
      android:visibility="gone" /> 

     <ImageView 
      android:id="@+id/fragment_title_bar_delete_all" 
      style="@style/Layout.Fill" 
      android:src="@drawable/ic_delete_all" 
      android:visibility="gone" /> 


    </FrameLayout> 
</LinearLayout> 

`

В этом случае вы можете сделать что-либо внутри макета, который определяется внутри ToolBar

Смежные вопросы