android中自定义appWidget

appWidget虽然只支持有限的几种布局和widget控件,但是利用ImageView可以把AppWidegt做的像View一样画任何东西在上面。
public class Bugs extends AppWidgetProvider{
	private static int x=0;
	private static int y=0;
	@Override
	public void onUpdate(Context context, AppWidgetManager appWidgetManager,
			int[] appWidgetIds) {
		// TODO Auto-generated method stub
		super.onUpdate(context, appWidgetManager, appWidgetIds);
		Log.i("Bugs"," time");
		RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.main);
		Time t=new Time();
		t.setToNow();
		String time="Hour"+t.hour+"Minite:"+t.minute+"Second:"+t.second;
		views.setTextViewText(R.id.bug, time);
		views.setImageViewBitmap(R.id.bugs, makeDst());
		for(int i=0;i<appWidgetIds.length;i++){
			appWidgetManager.updateAppWidget(appWidgetIds[i], views);
		}
		
		
		}
//构造一个可变的图片,不断地改变坐标
/*
 * 这个函数本身就是在一个线程里面,你可以像一般的做线程一样做!!
 */
	static Bitmap makeDst() {
		
		++x;
		++y;
		if(x>40){
			x=0;
			y=0;
		}
        Bitmap bm = Bitmap.createBitmap(240, 60, Bitmap.Config.ARGB_8888);
        Canvas c = new Canvas(bm);
        Paint p = new Paint(Paint.ANTI_ALIAS_FLAG);
        
        p.setColor(Color.BLUE);    
        //c.drawText(s,50,200,p);
        c.drawRect(new Rect(x,y,40,40), p);
        return bm;
    }

}

使用makeDst()函数,自己画一张Bitmap作为xml布局文件中的ImageViewd 的src就可以了
在makeDst里面可以像onDraw()函数一样的绘图
同时可以利用appWidegt的更新来做线程用。

你可能感兴趣的:(C++,c,android,xml,C#)