2012-03-22 2 views
1

Я хочу построить ЭЛЕКТРОННЫЕ ЧАСЫ вроде этого:Цифровые часы, как создать цифровые часы с пользовательскими изображениями часами андроид

https://play.google.com/store/apps/details?id=com.bacastudio.lcd

я пытаюсь добавить шрифт с помощью этого учебника, но это не работает: https://github.com/browep/AndroidCustomFontWidgets/blob/master/AndroidManifest.xml

Спасибо за любую помощь :)

у меня есть проблема с шрифтом, в затмение все в порядке, никаких ошибок, но когда я запускаю его ничего не произошло.

package org.me; 



    public class Euro2012cc extends AppWidgetProvider { 

@Override 
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { 
    context.startService(new Intent(context, UpdateService.class)); 
} 

public static class UpdateService extends Service { 
    @Override 
    public void onStart(Intent intent, int startId) { 
     // Build the widget update for today 
     RemoteViews view = buildUpdate(this); 
     // Push update for this widget to the home screen 
     ComponentName thisWidget = new ComponentName(this, Euro2012cc.class); 
     AppWidgetManager manager = AppWidgetManager.getInstance(this); 
     manager.updateAppWidget(thisWidget, view); 
    } 

     public RemoteViews buildUpdate(Context context) { 
      RemoteViews view = null; 
      view = new RemoteViews(context.getPackageName(), R.layout.main); 
      String time = "blablabla"; 
      view.setImageViewBitmap(R.id.test, buildUpdateTime(time)); 
      return view; 
     }   
     @Override 
     public IBinder onBind(Intent intent) { 
      // We don't need to bind to this service 
      return null; 
      }//ibinder 
     public Bitmap buildUpdateTime(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(),"TechnoHideo.ttf"); 
      paint.setAntiAlias(true); 
      paint.setSubpixelText(true); 
      paint.setTypeface(clock); 
      paint.setStyle(Paint.Style.FILL); 
      paint.setColor(Color.WHITE); 
      paint.setTextSize(15); 
      paint.setTextAlign(Align.CENTER); 
      myCanvas.drawText(time, 80, 60, paint); 
      return myBitmap;     
     } 

} 

}

ответ

0

Поскольку RemoteViews не поддерживает, чтобы установить шрифт для TextView, так что вы должны сделать свой текст, то преобразовать в растровое изображение, как это:

Шаг1: Создание изображения с пользовательскими начертания:

public static synchronized Bitmap createBitmapWithTypeface(Typeface tf, String strMyText) { 
    Paint paint = new Paint(); 
    paint.setStyle(Paint.Style.FILL); 
    paint.setColor(Color.RED); 
    paint.setTextSize(CUSTOM_TEXT_SIZE); 
    paint.setAntiAlias(true); 
    You can load you custom typeface here 
    paint.setTypeface(tf); 

    Bitmap mybitmap = Bitmap.createBitmap(BITMAP_WIDTH, BITMAP_HEIGHT, Bitmap.Config.ALPHA_8); 
    Canvas c = new Canvas(mybitmap); 
    c.drawColor(Color.WHITE);c.drawText(strMyText, 0, 0, paint); 

    return mybitmap; 
} 

Шаг2: Набор изображений в RemoteViews

setImageViewBitmap(int viewId, Bitmap bitmap) 

Пожалуйста, обратите внимание о памяти с этим решением

+0

Как я могу загрузить шрифт? getAsset не работает в AppWidget :( – Azor