0
我有這個類,它擴展View
:爲什麼canvas.setBitmap()在Parent中隱藏其他視圖?
public class DrawingPanel extends View {
private Bitmap toDisk;
private int w;
private int h;
public DrawingPanel(Context context, AttributeSet attrs) {
super(context, attrs);
System.out.println("Drawing");
p0 = new Paint();
p0.setStyle(Style.STROKE);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
...
}
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
this.w = w;
this.h = h;
toDisk = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
super.onSizeChanged(w, h, oldw, oldh);
}
@Override
public void onDraw(Canvas canvas) {
canvas.drawColor(Color.WHITE);
canvas.drawPath(path0, p0);
canvas.setBitmap(toDisk);
}
}
我使用這個類作爲一個佈局的子視圖。在Eclipse的Graphical view
中,所有東西都可以,並且所有視圖都可見,但在模擬器中,我的類(DrawingPanel
)隱藏了低於它的其他視圖。當我刪除此行時:
canvas.setBitmap(toDisk);
所有視圖都將再次可見。而另一個奇怪的事情:當我把那條線在onDraw
方法是這樣的第一行:
@Override
public void onDraw(Canvas canvas) {
canvas.setBitmap(toDisk);
canvas.drawColor(Color.WHITE);
canvas.drawPath(path0, p0);
}
是它下面我DrawingPanel
和其他意見將是不可見的。我怎麼解決這個問題? 我的目的是保存用戶在畫布上繪製的內容。