Как стать автором
Обновить

Комментарии 15

Напоминает решение из веба. Когда, текст стали заменять на картинки с текстом, чтобы использовать нестандартные шрифты. Тут, немного другое, да и в вебе теперь со шрифтами стало налаживаться.
Интересное решение, попробую у себя в виджете использовать. Спасибо.
Пользуюсь андройдом почти пол года и понимаю, почему ему никогда не быть айфоном: apple выставляет жесткие гайды по GUI и шаг влево — запрет на app store. В андройде же все одновременно проявяют чудеса дизайнерских изысков, кто на что горазд, все рисуют свои приложение и даже не думают как выглядят соседние.
Элементарный пример: собрать группу виджетов из часов, погоды и индикатора батареи в едином ключе оформления — почти нереально.

С чего вы вообще взяли, что эти кастомные шрифты нужны? Может наоборот дать пользователю выбрать из стандартных либо вообще применить системный?
Провокационный вопрос :) Стандартных шрифтов мало, а кастомные всегда и везде нужны были. Фантазия ведь безгранична :)
Непонятно, что же Вы подразумеваете под стандартными. Системных же всего 4 штуки — Default, Monospace, Sans-Serif и Serif. Очень даже не толстый набор, так что приходится выкручиваться.
выкрчиваться, чтоб я не смог поставить ваш виджет ибо он будет как баобаб среди берёз?
обычно в таких случаях вспомниают, что можно заглянуть в настройки
Да, RemoteViews предоставляют скудный набор методов. Однако, я бы посоветовал отнаследоваться от RemoteViews и определить недостающие методы. Написан RemoteViews не совсем дружелюбно — большинство методов private, но, как мне кажется после беглого анализа кода, проблему можно решить следующим путем:
public class MyRemoteViews extends RemoteViews {
    private RemoteViews mNativeRemoteViews;
    ...
}


Сам написать не пробовал так как не было необходимости, но попробывать думаю стоит.
Можно конечно, но по сути нам предстоит всё равно с Bitmap'ом возиться.
Отчего же. Я думаю в своем MyRemoteViews можно будет так же сделать:
	Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/Aliner.ttf");
	TextView tv = (TextView) findViewById(R.id.txtFont);
	tv.setTypeface(tf);

Прошу прощения, если я что-то не уловил.
Нет нет, здесь сам метод findViewById() не будет доступен, RemoteViews не предоставляет такой возможности.
Не совсем понял почему.
Если посмотреть в код RemoteViews, метод apply(), то видно, что он вызывает performApply(), котрый в свою очередь бегает по массиву mActions и выполняет нужные действия. Я полагаю, что можно переопределить метод apply() и сделать с виджетов все что угодно. Указатель на объект у которого можно будет вызвать findViewById() будет возвращен методом super.apply()

Опять же прошу меня извинить, если я что путаю.
Теперь я запутался :)
Никто не подскажет, есть ли в свежих верисиях андроида возможность доступа из приложений к Cell broadcast сообщениям?
Я похожим образом отображал кастомный прогрессбар.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории