tipografia para mejores las grafico google fuentes diseño dafont android widget typeface

android - google - las mejores fuentes para diseño grafico



Problema que muestra el tiempo utilizando una fuente personalizada (1)

Ahora descubrí (con la ayuda de un desarrollador experimentado) cómo hacer que funcione. El código final ahora es:

private void update() { mCalendar.setTimeInMillis(System.currentTimeMillis()); final CharSequence date = DateFormat.format(mDateFormat, mCalendar); final CharSequence day = DateFormat.format(mDayFormat, mCalendar); String time = (String) DateFormat.format(mTimeFormat, mCalendar); RemoteViews views = new RemoteViews(getPackageName(), R.layout.main); views.setTextViewText(R.id.Day, day); views.setTextViewText(R.id.Date, date); views.setImageViewBitmap(R.id.TimeView, buildUpdate(time)); ComponentName widget = new ComponentName(this, DigiClock.class); AppWidgetManager manager = AppWidgetManager.getInstance(this); manager.updateAppWidget(widget, views); } public Bitmap buildUpdate(String time) { Bitmap myBitmap = Bitmap.createBitmap(160, 84, Bitmap.Config.ARGB_4444); Canvas myCanvas = new Canvas(myBitmap); Paint paint = new Paint(); Typeface clock = Typeface.createFromAsset(this.getAssets(),"Clockopia.ttf"); paint.setAntiAlias(true); paint.setSubpixelText(true); paint.setTypeface(clock); paint.setStyle(Paint.Style.FILL); paint.setColor(Color.WHITE); paint.setTextSize(65); paint.setTextAlign(Align.CENTER); myCanvas.drawText(time, 80, 60, paint); return myBitmap; }

Tengo un widget de reloj digital y quiero usar una fuente personalizada para mostrar la hora. Sé que no se puede hacer en vistas remotas, por lo que he obtenido un código que convierte la fuente personalizada en un mapa de bits y luego lo desplaza a través de vistas remotas a una vista de imagen. Sin embargo, no puedo hacer que funcione. Este es mi código hasta ahora:

public Bitmap buildUpdate(String time) { RemoteViews views = new RemoteViews(this.getPackageName(), R.layout.main); Bitmap myBitmap = Bitmap.createBitmap(100, 50, Bitmap.Config.ARGB_4444); Canvas myCanvas = new Canvas(myBitmap); Paint paint = new Paint(); Typeface clock = Typeface.createFromAsset(this.getAssets(),"Clockopia.ttf"); paint.setAntiAlias(true); paint.setSubpixelText(true); paint.setTypeface(clock); paint.setStyle(Paint.Style.FILL); paint.setColor(Color.WHITE); paint.setTextSize(15); myCanvas.drawText(time, 0, 20, paint); views.setImageViewBitmap(R.id.TimeView, myBitmap); return myBitmap; } private void update() { mCalendar.setTimeInMillis(System.currentTimeMillis()); final CharSequence date = DateFormat.format(mDateFormat, mCalendar); final CharSequence day = DateFormat.format(mDayFormat, mCalendar); // final CharSequence time = DateFormat.format(mTimeFormat, mCalendar); String time = (String) DateFormat.format(mTimeFormat, mCalendar); RemoteViews views = new RemoteViews(getPackageName(), R.layout.main); views.setTextViewText(R.id.Day, day); views.setTextViewText(R.id.Date, date); // views.setTextViewText(R.id.Time, time); buildUpdate(time); ComponentName widget = new ComponentName(this, DigiClock.class); AppWidgetManager manager = AppWidgetManager.getInstance(this); manager.updateAppWidget(widget, views); }

Cualquier ayuda es apreciada.