2012-03-18 88 views
1

我可以,如果我這樣做,這個標誌添加到canavas:嘗試通過FrameLayout.addView()將Imageview添加到畫布上;

FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(200,200); 

ImageView boo = new ImageView(ExampletouchActivity.this); 
boo.setImageResource(R.drawable.ic_launcher); 
boo.setLayoutParams(lp); 
fr.addView(boo); //this works fine 

但是,如果我嘗試在同一徽標添加到畫布這樣它不會顯示任何東西:

fr.addView(new Toucher(ExampletouchActivity.this)); 

我Toucher類是這樣的...

public class Toucher extends View{ 
ImageView boo; 

public Toucher(Context context) 
{ 
    super(context); 
    FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(200,200); 
    boo = new ImageView(context); 
    boo.setImageResource(R.drawable.ic_launcher); 
    boo.setLayoutParams(lp); 
} 
@Override 
public void onDraw(Canvas c) 
{ 
    boo.draw(c); 
} 

我一直在嘗試的年齡,不能明白爲什麼這個ImageView的本身不會畫到畫布?

很多謝謝

回答

1

佈局和畫布不是一回事。佈局是「爲我畫這個」,畫布是「我正在畫這個」。在您的工作示例中,您將採用靜態圖像並將其放入佈局中。

0

當你正在使用的畫布,在視圖中的事情是不同的,所以請嘗試使用:

canvas.drawBitmap(bg, src, dst, paint);