AppCompat-v7을 사용하여 작업 표시 줄 / 도구 모음에 아이콘 표시 21


130

나는 이것을 시도했지만 여전히 이전과 같은 아이콘이 보이지 않습니다.

getSupportActionBar().setLogo(R.drawable.ic_launcher);
getSupportActionBar().setDisplayUseLogoEnabled(true);
getSupportActionBar().setIcon(R.drawable.ic_launcher);

사용자 정의 툴바를 사용할 때 작동하는 것 같습니다.하지만 모든 레이아웃을 터치 해야하는 더 좋은 방법이 있습니까?


1
활동 표시 줄 항목을 추가 한 활동 클래스를 추가 할 수 있습니까?
Harsha Vardhan

답변:


256
getSupportActionBar().setDisplayShowHomeEnabled(true);

와 함께

getSupportActionBar().setIcon(R.drawable.ic_launcher);

7
이주의 getSupportActionBar()할 수 null활동의 스타일에 따라.
jlhonora

2
여전히 표시되지 않는 아이콘입니다. getSupportActionBar (). setDisplayHomeAsUpEnabled (true)를 사용했습니다. getSupportActionBar (). setIcon (R.drawable.ic_app_icon); getSupportActionBar (). setTitle ( "Label");
Meenaxi

8
제목 표시 줄 가운데에 아이콘이 나타나는 이유는 무엇입니까? 제목 표시 줄의 아이콘 왼쪽을 원합니다. 도와주세요 .. 감사합니다
Mohammad Rajob

1
@Meenaxi는 setDisplayShowHomeEnabled (true)를 사용해야합니다. 그 중 하나는 나를 위해 속임수
arniotaki

1
아이콘을 설정해도 클릭 할 수는 없습니다. 클릭 가능한 아이콘을 찾으려면 아이콘을 사용 .setHomeAsUpIndicator하고 처리해야합니다 onOptionsItemSelected.
Joshua Pinter

32

최신 Android UI에서 개발자는 애플리케이션 아이콘보다 툴바의 시각적으로 다른 색상 구성표에 더 의존해야합니다. API 21 디바이스 이상에서는 애플리케이션 아이콘과 제목을 표준 레이아웃으로 사용하지 않는 것이 좋습니다.

동의하지 않으면 다음을 시도해보십시오.

XML로 도구 모음을 작성하려면 다음을 수행하십시오.

<android.support.v7.widget.Toolbar  
    android:id="@+id/my_awesome_toolbar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary" />

당신의 활동에서 :

@Override
public void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);
    setContentView(R.layout.my_layout);

    Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
    setSupportActionBar(toolbar);
}

사용 setLogo () 아이콘을 설정하는 방법을. 코드 소스.


1
현재 Play 스토어 Settings액티비티에 작업 표시 줄에 앱 아이콘이 있음을 지적하고 싶습니다 . 이것은 머티리얼 업데이트 후에도 여전히 존재합니다.
Austyn Mahoney

17

이것은 나를 위해 일했다 :

    getSupportActionBar().setHomeButtonEnabled(true);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
    getSupportActionBar().setDisplayUseLogoEnabled(true);
    getSupportActionBar().setLogo(R.drawable.ic_logo);
    getSupportActionBar().setDisplayShowTitleEnabled(false); //optional

만큼 잘:

    getSupportActionBar().setHomeButtonEnabled(true);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
    getSupportActionBar().setIcon(R.drawable.ic_logo); //also displays wide logo
    getSupportActionBar().setDisplayShowTitleEnabled(false); //optional

많은 불필요한 방법이 있으며 icon과 관련이 없습니다
user924

15

가장 간단한 일; 그냥 추가하십시오 :

app:navigationIcon="@drawable/ic_action_navigation_menu">

받는 사람 <android.support.v7.widget.Toolbar태그

@drawable/ic_action_navigation_menu아이콘의 이름은 어디에 있습니까


1
완벽하게 작동합니다! 툴바에 탐색 아이콘을 추가하는 가장 정확하고 간단한 방법입니다. 탐색 아이콘 클릭을 확인하려면의에서 android.R.id.homeID를 확인할 수 있습니다 onOptionsItemSelected(...).
Sazid 2016 년

12

여러 옵션을 설정하는 더 좋은 방법 :

setIcon/setLogo당신이 설정 한 경우 방법은 것입니다에만 작동 DisplayOptions는 이 시도 -

actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE);
actionBar.setIcon(R.drawable.ic_launcher);

LOGO 표시 옵션을 설정할 수도 있습니다 (상수 추가 ActionBar.DISPLAY_USE_LOGO). 추가 정보 -displayOptions


6

다음을 사용하십시오.

ActionBar ab = getSupportActionBar();
ab.setHomeButtonEnabled(true);
ab.setDisplayUseLogoEnabled(true);
ab.setLogo(R.drawable.ic_launcher);

5
유망한 소리-그러나 여전히 아이콘 없음 :-(
ligi

5

홈 또는 뒤로 아이콘 (로고 또는 정적 아이콘 아님)을 설정하여 사용할 수있는 경우

 getSupportActionBar().setDisplayHomeAsUpEnabled(true);
 getSupportActionBar().setHomeAsUpIndicator( getResources().getDrawable(R.drawable.home) );

이 배포 모양과 동작하기 때문에, 정답입니다
cutiko

단지이 (크기, 여백, 제목과 아이콘 사이의 오프셋), 벡터 런처 (와 확인도 작동 나에게 정상적인 모양을했다 .xml같은) R.mipmap.ic_launcher또는R.mipmap.ic_launcher_round
user924

이 로고를 로고 / 정적 아이콘으로 사용하여 다른 솔루션이
제대로

5

작업 표시 줄의 경우 :

getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeAsUpIndicator(R.drawable.ic_action_back);

툴바의 경우 :

getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_action_back);

5
ActionBar와 툴바의 두 코드에는 차이가 없습니다. 이것은 의도적 인 것입니까?
King King

1
ActionBar의 경우 : getActionBar (). setDisplayHomeAsUpEnabled (true); getActionBar (). setHomeAsUpIndicator (R.drawable.ic_action_back);
Darsshan

이것은 실제로 갈 길입니다. 그냥 사용하는 setIcon곳으로, 클릭 할 수있는 버튼을 허용하지 않는 setHomeAsUpIndicator그에서 처리 onOptionsItemSelected작업 치료를. 감사!
Joshua Pinter

4
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setIcon(R.drawable.ic_launcher);

또는 XML 레이아웃 호출을tool_bar.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:background="@color/colorPrimary"
    android:theme="@style/ThemeOverlay.AppCompat.Dark"
    android:elevation="4dp">

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@color/colorPrimary"
        android:src="@drawable/ic_action_search"/>

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

이제 주요 활동에서이 줄을 추가하십시오.

 <include
     android:id="@+id/tool_bar"
     layout="@layout/tool_bar" />

3

setSupportActionBar를 사용하여 도구 모음을 조치 표시 줄로 설정하지 않으려면 다음과 같이 탐색 아이콘 옆에 로고를 추가 할 수 있습니다 (예 : 뒤로 단추가있는 경우).

toolbar.setLogo();

또는 xml로

<android.support.v7.widget.Toolbar 
    ....
    android:logo="@drawable/logo"
    app:logo="@drawable/logo"/>

툴바에 제목이 설정되어 있어도 제목은 계속 표시됩니다.

예 : 아래 이미지의 녹색 체크는 로고입니다

탐색 아이콘, 로고 및 제목이있는 툴바


2

이 시도:

import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
...
    ActionBar actionbar = getSupportActionBar();
    actionbar.setDisplayHomeAsUpEnabled(true);
    actionbar.setHomeAsUpIndicator(R.drawable.ic_launcher);

so your icon will be used for Home / back
or

import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
...
    ActionBar actionbar = getSupportActionBar();
    actionbar.setDisplayShowHomeEnabled(true);
    actionbar.setIcon(R.drawable.ic_launcher);

정적 아이콘


1
toolbar.setLogo(resize(logo, (int) Float.parseFloat(mContext.getResources().getDimension(R.dimen._120sdp) + ""), (int) Float.parseFloat(mContext.getResources().getDimension(R.dimen._35sdp) + "")));


public Drawable resize(Drawable image, int width, int height)
{
    Bitmap b = ((BitmapDrawable) image).getBitmap();
    Bitmap bitmapResized = Bitmap.createScaledBitmap(b, width, height, false);
    return new BitmapDrawable(getResources(), bitmapResized);
}

0

Xamarin.Android에서는 다음을 사용할 수 있습니다.

SupportActionBar.SetHomeButtonEnabled(true);
SupportActionBar.SetDisplayShowHomeEnabled(true);
SupportActionBar.SetDisplayUseLogoEnabled(true);
SupportActionBar.SetIcon(Resource.Drawable.ic_launcher);
SupportActionBar.SetDisplayShowTitleEnabled(false);

Android.Support.V7.App.AppCompatActivity를 사용해야합니다.


0

이 시도. 나를 위해 그것은 효과가 있었다

getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayUseLogoEnabled(true);

0

Kotlin에서는 아이콘을 표시하기 위해 다음을 수행했습니다.

supportActionBar?.setDisplayShowHomeEnabled(true)
supportActionBar?.setIcon(R.drawable.ic_icon_small)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.