안드로이드 액션 바 제목과 아이콘을 변경하는 방법


225

Android의 ActionBar에서 몇 가지 작업을 수행하려고합니다.

작업 표시 줄의 오른쪽에 이미 새 항목을 추가했습니다.

작업 표시 줄의 왼쪽을 어떻게 변경합니까? 아이콘과 텍스트를 변경하고 다른 화면의 작업 표시 줄에 "뒤로 단추"를 추가하고 싶습니다

안드로이드 액션 바

답변:


514

이것은 매우 간단합니다

코드에서 변경하려면 다음을 호출하십시오.

setTitle("My new title");
getActionBar().setIcon(R.drawable.my_icon);

그리고 원하는대로 값을 설정하십시오.

또는 Android 매니페스트 XML 파일에서 :

<activity android:name=".MyActivity" 
       android:icon="@drawable/my_icon" 
       android:label="My new title" />  

앱에서 뒤로 버튼을 활성화하려면 다음을 사용하십시오.

 getActionBar().setHomeButtonEnabled(true);
 getActionBar().setDisplayHomeAsUpEnabled(true);

onCreate레이블 / 아이콘 변경이 사용자에게 투명하도록 코드를 모두 배치해야 하지만 실제로는 활동의 수명주기 동안 어디에서나 호출 할 수 있습니다.


23
지원 라이브러리를 사용하여 작업 표시 줄을 추가하는 경우 getSupportActionBar대신을 사용하십시오 getActionBar.
Rick Pastoor 2013 년

3
getActionBar().setHomeButtonEnabled(true)당신은 그냥 뒤로 버튼 기능을 원하는 경우, 최대 API 레벨 14을 사용 아니라 새로운 API를 당신이 단지 필요로하는 나이getActionBar().setDisplayHomeAsUpEnabled(true)
Akshat 아가 왈

3
getSupportActionBar (). setDisplayShowTitleEnabled (true); setTitle ( "123") 전에;
Jose Manuel Abarca Rodríguez

코드를 사용하는 경우 getActionBar (). setIcon (R.drawable.my_icon); 클릭 가능하게 만들 수 있습니까?
Skitty

1
@ JoseManuelAbarcaRodríguez 고마워, 그게 나에게 없어진 것입니다. 에서 코 틀린 : supportActionBar?.setDisplayShowTitleEnabled(true)다음 supportActionBar?.title = "your title". 그리고로 액티비티를 생성 할 때가 onResume아닌 로 수행해야합니다 . onCreatestartActivity
에릭 아야

18

모든 작업 표시 줄에서 단일 아이콘을 사용할 수 있도록하려면 Android Manifest에서이 작업을 수행 할 수 있습니다.

<application
    android:logo="@drawable/Image">

    ...

</application>

1
thanks- 앱 외부에 다른 아이콘 ( "모든 앱"에 표시됨)과 작업 표시 줄 왼쪽에 다른 아이콘이 필요했습니다. 그리고 이것은 효과가있었습니다. = "@ 드로어 블 / 사진 ic_launcher"아이콘 : 매니페스트 파일은 아직 안드로이드가
flobacca

2
pre-loads프로그래밍 방식으로 아이콘이 느린 아이콘입니다.
Muhammad Babar

11

이 3 줄의 코드 만 추가하면됩니다. 아이콘을 자신의 아이콘으로 바꿉니다. 아이콘을 생성하려면 이것을 사용 하십시오

getSupportActionBar().setHomeAsUpIndicator(R.drawable.icon_back_arrow);
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);

11

Android 5.0 재질 디자인 지침에서는 actionBar에서 아이콘 사용을 권장하지 않습니다.

다음 코드를 추가 할 수 있도록

getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setLogo(R.mipmap.ic_launcher);
getSupportActionBar().setDisplayUseLogoEnabled(true);

크레딧은이 기사의 저자에게갑니다


9

액션 바 제목을 변경하려면 액티비티의 onCreate ()에 다음 1 줄 코드를 지정하십시오.

getActionBar().setTitle("Test");

이 타이틀 변경에 애니메이션을 적용하려면 어떻게해야합니까?
Srikar Reddy

7

각각의 드로어 블 폴더에 원하는 아이콘을 추가 한 다음 AndroidManifest.xml 파일에서이 줄을 변경하여 아이콘을 변경할 수 있습니다.

android:icon="@drawable/ic_launcher"

아이콘 이름이 무엇이든 일치합니다. 또는 동일한 아이콘 인 경우 아이콘을 ic_launcher로 설정하십시오. 내용에 대해서는 res / values ​​/ strings.xml 파일에서 일치하는 문자열을 추가하거나 변경하십시오. 그런 다음 AndroidManifest.xml 파일에서 다시이 행을 변경하십시오.

android:label="@string/app_name"

당신이 그들의 문자열에 무엇이든. 응용 프로그램 전체와 원하는 활동에 대해이 작업을 수행해야하지만 선은 동일합니다.

도움이 되었기를 바랍니다.


android:icon액티비티 태그 에서이 크기는 어느 크기 (dp) 여야 합니까?
cuddlecheek

6
ActionBar actionBar = getSupportActionBar();
actionBar.setTitle(getString(R.string.titolo));
actionBar.setIcon(R.mipmap.ic_launcher);
actionBar.setDisplayShowHomeEnabled(true);

5

이를 위해 XML 또는 Java의 두 가지 방법으로 수행 할 수 있습니다. 여기를 참조하십시오 : 작업 표시 줄의 텍스트를 변경하는 방법

그래서:

XML :

<activity android:name=".Hello_World"
              android:label="This is the Hello World Application">
</activity>

자바:

public class TitleBar extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);

       final boolean customTitleSupported = requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

       setContentView(R.layout.main);


       if ( customTitleSupported ) {
           getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar);
           }

       final TextView myTitleText = (TextView) findViewById(R.id.myTitle);
       if ( myTitleText != null ) {
           myTitleText.setText("NEW TITLE");

           // user can also set color using "Color" and then "Color value constant"
          // myTitleText.setBackgroundColor(Color.GREEN);
       }
 }
}

2
코드에서 수행하려면 setTitle(CharSequence text)또는 을 호출해야합니다 setTitle(int titleRes). requestWindowFeature(Window.FEATURE_CUSTOM_TITLE)전체 제목 표시 줄을 사용자 정의보기로 바꾸려는 경우가 아니라면 사용 하지 마십시오 .
Karakuri

3

제목 설정 :

getActionBar().setTitle("Title");

아이콘 설정 :

getActionBar().setIcon(R.drawable.YOUR_ICON_NAME);

2

나는 안에 다음과 같은 호출을 사용했다 onNavigationItemSelected:

HomeActivity.this.setTitle(item.getTitle());


1

이것은 나를 위해 작동합니다 :

getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeAsUpIndicator(R.mipmap.baseline_dehaze_white_24);

0

작업 표시 줄 제목은 기본적으로 현재 활동의 레이블을 사용하지만을 통해 프로그래밍 방식으로 설정할 수도 있습니다 ActionBar.setTitle().

말하는 "뒤로"(보다 정확하게는 "위로") 버튼 기능을 구현하려면 작업 표시 줄 개발자 안내서 의 "탐색에 앱 아이콘 사용"섹션을 읽으십시오 .

마지막으로, 아이콘을 변경하기 위해 가이드에서도 그 내용을 다룹니다. 즉, 작업 표시 줄에 android:icon매니페스트 application또는 activity요소 에 제공된 이미지가있는 경우 이미지가 표시됩니다 . 일반적인 방법은이라는 응용 프로그램 아이콘 (필요한 모든 밀도로)을 만들어 디렉토리에 ic_launcher.png배치하는 것입니다 drawable-*.


0

정적 PlaceholderFragment 클래스에서 non-static method setTitle(CharSequence) cannot be referenced from a static context사용했기 때문에 오류 가 발생했습니다 setTitle(). 나는 그것을 사용하여 그것을 해결했다.getActivity().getActionBar().setTitle("new title");


0

특정 활동을 변경하려는 매니페스트로 이동하여 작업 표시 줄 제목 이름을 작성하고 android : label = "Title name"을 작성하십시오.


0

AndroidManifest.xml 파일로 이동 하십시오. <application>태그 찾기 거기에서 속성을 볼 수 있습니다

android:label="@string/app_name"

이제 res> values> strings.xml로 이동하십시오.

변경

<string name="app_name">MainActivity</string> 

<string name="app_name">Your Desired Name</string>

AndroidManifest.xml

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

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

        </activity>
    </application>

strings.xml

<resources>
    <string name="app_name">Your Desired Name</string>
    <string name="action_settings">Settings</string>
</resources>

0

다음과 같이 할 수도 있습니다.

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main2)
        setSupportActionBar(toolbar)
        setTitle("Activity 2")
    }
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.