2010-07-13 70 views
0
繪製位圖在佈局前

我有),我在其中包含了許多的ImageView,RelativeLayout的的一個XML文件,定義了一個佈局等如何OnDraw的

在OnCreate中(我有以下代碼

public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

以我倍率爲視圖,我有以下代碼

class MainView extends View 
{ 
    . 
    @Override 
    protected void onDraw(android.graphics.Canvas canvas) 
    { 
     . 
     . 
    canvas.drawBitmap(Bitmap, x, y, null); 
    } 

x和y被計算以與我ImageViews之一(我已驗證它們是correc重合t和位圖是有效的),我的問題是位圖總是繪製在ImageView後面。這是它被掩蓋了。有沒有辦法強制位圖在ImageView前面繪製?

回答

0

如果你要繪製位圖,爲什麼你有一個ImageView?

視圖總是在前面。圖像瀏覽網站位於您的活動之上,並且您正在吸引您的活動。

您可以設置圖像視圖的圖像src,或者刪除圖像視圖並畫到畫布。

+0

一個很好的問題,我用SetImageDrawable試過前面的帆布()但它是非常昂貴的,所以我試圖通過在OnDraw()中繪製圖像的快捷方式,但是我認爲我已經回答了我自己的問題,OnDraw中的畫布是背景將根據documentat離子。這可以解釋爲什麼位圖被遮擋,但不能很好地解決我的問題 對於加速更改ImaveView的src有什麼建議嗎? – user330844 2010-07-13 14:23:13

+0

刪除圖像視圖,如果你不需要它。如果它仍然很慢,也許你想看看使用GLSurfaceView,在那裏你可以使用OpenGL來繪製你的圖像作爲紋理。我對它的經驗很少,但速度更快 – 2010-07-13 14:34:27

0

仔細閱讀該文檔,我發現

的OnDraw

實現這個做你的圖紙。

參數

畫布上的背景將被吸引

這就解釋了爲什麼佈局位圖