2015-09-18 3 views
0

Я хочу изменить шрифт textview в Домашний экранный виджет?Как изменить шрифт textview в виджетах главного экрана?

  RemoteViews remoteViews = new RemoteViews(context.getPackageName(), 
       R.layout.time_widget_layout); 
     remoteViews.setTextViewText(R.id.tvTime, Utility.getCurrentTime("hh:mm:ss a")); 

У меня есть шрифт в папке с моими активами.

+1

AFAIK, это невозможно. – CommonsWare

+0

@CommonsWare любым другим способом? –

ответ

0

TextView имеет метод на нем под названием setTypeface

код, чтобы установить шрифт будет выглядеть следующим образом, если ваш шрифт в «Assets/Шрифт/Font.otf»:

Typeface font = Typeface.createFromAsset(context.getAssets(), "Font/Font.otf"); 
TextView textView = (TextView)findViewById(R.id.tvTime); 
textView.setTypeface(font, Typeface.NORMAL); 

Необязательно: При необходимости вы можете сделать это внутри конструктора класса, наследующего от TextView, а затем использовать этот класс в своих макетах, если вы хотите использовать этот шрифт в кучке разных мест. Кроме того, если вы хотите сделать это внутри конструктора, вы можете иметь имя шрифта, переданного в качестве стилизованного атрибута в вашем макете, и использовать это вместо строковой строки, как указано выше.

-1

Методы RemoteView очень ограничены. но setImageViewBitmap достаточно.
создать TextView с помощью кода Java, позволяют этой функции:

textView.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH); 
textView.setDrawingCacheEnabled(true); 

теперь установлен шрифт, изменить размер шрифта и делать все, что вы хотите, наконец, вы можете получить желаемый Bitmap и установить его в свой домашний экран ImageView

textView.buildDrawingCache(); 
Bitmap finalResult = textView.getDrawingCache(); 
remoteImageView.setImageViewBitmap(R.id.ivWidget, finalResult);