2017-05-06 19 views
0

抽我想对位图添加文字和设置在AppWidget ImageView的,这里是我的代码:文本未在画布上的位图在AppWidget

RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget); 
Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.img); 
Canvas canvas = new Canvas(bitmap.copy(Bitmap.Config.ARGB_8888, true)); 
Paint paint = new Paint(); 
paint.setStyle(Paint.Style.FILL); 
paint.setColor(Color.WHITE); 
paint.setTextSize(20); 
paint.setTextAlign(Paint.Align.CENTER); 
paint.setAntiAlias(true); 
//int xPos = (canvas.getWidth()/2); 
//int yPos = (int) ((canvas.getHeight()/2) - ((paint.descent() + paint.ascent())/2)); 
int xPos = (canvas.getWidth()/2); 
int yPos = (canvas.getHeight()/2); 
canvas.drawText("My Text", xPos, yPos, paint); 
views.setImageViewBitmap(R.id.widgetImg, bitmap); 
appWidgetManager.updateAppWidget(appWidgetId, views); 

但AppWidget它只是简单的图像( R.drawable.img),并且上面没有文字。 任何人都知道这个问题?

回答

0

根据this答案只是改变了这一行:

Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.img); 
Canvas canvas = new Canvas(bitmap.copy(Bitmap.Config.ARGB_8888, true)); 

到:

Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.img); 
bitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true); 
Canvas canvas = new Canvas(bitmap);