Пользовательское название с изображением

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

Я могу настроить размер, фоновое изображение и текст через темы, изменяя элементы windowXYZStyle.

Единственное, чего я не мог найти – как я могу добавить изображение вместо текста. Я попробовал requestWindowFeature(Window.FEATURE_CUSTOM_TITLE) и назначил настраиваемый макет, но он, похоже, не работает.

EDIT: Вот отчет о тестировании предложений, код ниже – результат – изображение не появляется.

Мероприятия

 public class SettingsActivity extends PreferenceActivity { @Override protected void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title); super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.settings); } } XML : <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/title" android:layout_width="fill_parent" android:layout_height="26dip" android:paddingLeft="5dip" android:background="@drawable/titlebar_bg" android:layout_gravity="left|center" > <ImageView android:id="@+id/logo" android:src="@drawable/title_logo" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> 

Solutions Collecting From Web of "Пользовательское название с изображением"

Можно настроить собственный собственный макет заголовка, однако порядок выполнения имеет значение. Вы должны делать что-то в этом порядке:

 requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.my_layout); getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.my_custom_title); 

Кроме того, вам может потребоваться увеличить размер заголовка; Если вы этого не сделаете, то нижняя часть вашего пользовательского макета может быть просто закрыта вашей деятельностью. Вы можете изменить размер, добавив тему, определяющую размер заголовка. Это приведет к XML-файлу значений:

 <resources> <style name="LargeTitleTheme"> <item name="android:windowTitleSize">40dip</item> </style> </resources> 

Затем вам нужно будет установить тему для своей деятельности (или приложения, если вы хотите, чтобы все приложение имело эту настраиваемую строку заголовка) в AndroidManifest.xml:

 <activity android:name=".MyCustomTitleActivity" android:theme="@style/LargeTitleTheme" /> 

Вы всегда можете использовать:

 requestWindowFeature(Window.FEATURE_NO_TITLE); 

А затем создайте собственную строку заголовка в представлении активности.

Вы уверены, что вам нужно использовать изображение в названии, а не просто комбинировать его как часть вашего фонового изображения и оставить заголовок пустым? Используя изображение NinePatch, я бы ожидал, что вы сможете достичь результата, который будет хорошо смотреться независимо от устройства?

Я использовал следующий код, чтобы соответствовать моему пользовательскому заголовку на экране

 <ImageView android:id="@+id/header_img" android:src="@drawable/header_img" android:layout_width="700dip" android:layout_height="70dip" />