2011-12-03 7 views
1

私は、カスタムフォントをウィジェット(AppWidgetProvider)に描画しようとしています。今問題は、AppWidgetProviderの拡張機能から拡張機能にアクセスできないことです。これを回避する方法はありますか?ありがとう!Android WidgetのgetAssets

* UPDATE *これはフィードバックの後にあります。ウィジェットには何も表示されません。私のXMLはこのように見えますか?私は間違って行くよどこたぶんそれは今...

import java.text.DateFormat; 
import java.util.Date; 
import android.appwidget.AppWidgetProvider; 
import android.content.Context; 
import android.graphics.Typeface; 
import android.appwidget.AppWidgetManager; 
import android.widget.RemoteViews; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.graphics.Canvas; 
import android.graphics.Color; 
import android.graphics.Paint; 
import android.graphics.Paint.Align; 
import android.graphics.Typeface; 
import android.widget.ImageView; 

public class ClockWidgetXProvider extends AppWidgetProvider { 

    public Bitmap buildUpdate(String string, Context context) { 
     Bitmap myBitmap = Bitmap.createBitmap(160, 84, Bitmap.Config.ARGB_4444); 
     Canvas myCanvas = new Canvas(myBitmap); 
     Paint paint = new Paint(); 
     Typeface clock = Typeface.createFromAsset(context.getAssets(),"Carre.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(string, 80, 60, paint); 
     return myBitmap; 
    } 
    @Override 
    public void onUpdate(Context context, 
     AppWidgetManager appWidgetManager, int[] appWidgetIds) { 
     RemoteViews view = new RemoteViews(context.getPackageName(), R.layout.clockwidget); 
     String currentDateTimeString = DateFormat.getTimeInstance().format(new Date()); 
     view.setImageViewBitmap(R.id.time1, buildUpdate(currentDateTimeString, context)); 
     appWidgetManager.updateAppWidget(appWidgetIds, view); 
    } 
} 
+0

任意のアイデアをみんなに方法ありますか? – adamwhiles

+0

1.取得したエラーメッセージを投稿してください。 2. 'assets'ディレクトリに' Carre.ttf'を持っていますか? –

+0

getAssets()メソッドは、ClockWidgetXProviderタイプでは未定義です – adamwhiles

答えて

1

変更

public Bitmap buildUpdate(String time, Context context) { 
... 
Typeface clock = Typeface.createFromAsset(context.getAssets(),"Carre.ttf"); 
+0

nevermindはそれを得て、あなたのソリューションを完全にテストしました – adamwhiles

+0

'context.getAssets()'の最初の文字は小文字です。 –

+0

投稿コードが更新されましたが、まだ動作していません – adamwhiles