2013-08-25 1 views
0

Мне нужно динамически установить значок в строке заголовка. В настоящее время у меня есть этот код в моей деятельности:Значок пользовательского названия в действии

requestWindowFeature(Window.FEATURE_LEFT_ICON); 
setContentView(R.layout.table_layout_activity); 
getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, R.drawable.icon_procedure); 

Это работает отлично, за исключением того, что она изменяет размер шрифта и удаляет (по умолчанию) пограничную линию в нижней части панели. Я бы хотел установить только значок и оставить все остальное по умолчанию.

По умолчанию строка заголовка:

Default titlebar.

Пользовательский значок:

Custom icon.

Любой может помочь?

+0

Почему бы не использовать панель действий для установки значка? –

ответ

2

Icon можно изменить несколькими способами для деятельности, программно для индивидуальной деятельности, как

В OnCreate()

getActionBar().setIcon(R.drawable.icon); 
// icon is image in res/drawable folder. 

Или в теме рабочего стола, добавив это в свой стиль ActionBar.

<item name="android:icon">@drawable/icon</item> 
<!-- This changes icon universally for all Activities in application --> 
0

Поскольку вы используете панель действий, используйте setIcon() на ActionBar, чтобы изменить значок и избавиться от этого другого.

+0

Спасибо. Хотя я не знаю, что вы имеете в виду. У вас есть пример? – Frederic

+0

@ user2146129: 'ActionBar' - это класс. 'setIcon()' - это метод в этом классе. Если вы прочитали [документацию для «ActionBar»] (http://developer.android.com/reference/android/app/ActionBar.html), вы прочитаете «Из вашей деятельности вы можете получить экземпляр ActionBar, вызвав getActionBar()». Это должно быть тривиально. – CommonsWare

0

Использование SetIcon() на ActionBar() или изменить его непосредственно в AndroidManifest.xml