Использование пользовательских макетов для библиотеки сухариков

У меня есть библиотека crouton ( https://github.com/keyboardsurfer/Crouton), работающая с макет по умолчанию для уведомлений. Я хотел бы использовать XML-файл пользовательского макета для уведомлений, чтобы я мог установить другой шрифт для TextView, чтобы он соответствовал остальной части моего приложения. Я расширил TextView, чтобы заставить работать пользовательский шрифт.

Просматривая исходники библиотеки, я нашел пару методов, которые, возможно, мне помогут:

public static Crouton make(Activity activity, View customView, ViewGroup viewGroup) {
    return new Crouton(activity, customView, viewGroup);
}

public static Crouton make(Activity activity, View customView) {
    return new Crouton(activity, customView);
}

Но я изо всех сил пытаюсь найти хороший пример того, как использовать пользовательские макеты для сообщений с гренками и как я могу установить для них стиль текста/сообщения (я определил некоторые пользовательские стили, используя Style.Builder()).

Пользовательский макет, который я хочу использовать:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res/uk.co.volume.pinkmothballs"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >

    <com.myapp.ui.views.TypefacedTextView
        android:id="@+id/crouton_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="14sp"
        android:gravity="center"
        />

</RelativeLayout>

Может ли кто-нибудь указать мне в правильном направлении?


person boz    schedule 05.03.2013    source источник


Ответы (1)


Вы можете настроить Style, который использует resourceId внешнего вида вашего текста, через Style.Builder.setTextAppearance(...).

Это берет ссылку из вашего styles.xml и использует ее во внутреннем TextView файла Crouton.

Затем вы можете вызвать Crouton.makeText или Crouton.showText со своим собственным стилем.

person keyboardsurfer    schedule 05.03.2013
comment
Спасибо за ответ, но я не думаю, что смогу использовать setTextAppearance, потому что я использую системные шрифты, отличные от Android, объявив Typeface, а затем установив его для своего пользовательского TextView. Что еще я мог попробовать? - person boz; 05.03.2013
comment
Расширение библиотеки всегда возможно. Мне нравятся чистые пулреквесты. ;-) Кроме того, вы можете заменить TextView члена Crouton своим TypefacedTextView. - person keyboardsurfer; 05.03.2013
comment
Спасибо, мне, вероятно, придется пойти и заменить несколько строк кода внутри библиотеки Crouton и таким образом добавить свой собственный шрифт. - person boz; 05.03.2013