2012-07-09 62 views
1

我需要對正在工作的應用程序有一點幫助。我正在嘗試創建一個繪畫應用程序,並且前幾天我注意到了一個問題,現在我決定做一些研究來解決它。當我使用PorterDuff.Mode.CLEAR將我的筆刷用作橡皮擦時,它的工作原理與我的背景爲白色時一樣。但是,如果我使用其他顏色(例如黑色,如mCanvas.drawColor(Color.BLACK);)設置我的背景,並在使用橡皮擦之後,我使用橡皮擦的地方塗上了白色。 下面是我如何設置我的橡皮變量:Android PorterDuff.Mode.CLEAR在背景爲黑色時無法正常工作

erase.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      stamp=false; 
      MODE = ERASER_MODE; 
      mPaint.setColorFilter(null); 
      mPaint.setShader(null); 
      mPaint.setMaskFilter(null); 
      mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR)); 
     } 
    }); 

因此,任何想法,爲什麼它的發生,我怎麼能解決這個問題?

在此先感謝!

回答

1

其實我發現我的問題在哪裏。在我的自定義視圖,我用繪圖和等我在做這個

@Override 
    protected void onSizeChanged(int w, int h, int oldw, int oldh) { 
     super.onSizeChanged(w, h, oldw, oldh); 
     mBitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888); 
     mCanvas = new Canvas(mBitmap); 
     mCanvas.drawColor(parentColor); //parentColor = currentBackgroundColor 
    } 

    @Override 
    protected void onDraw(Canvas canvas) { 
     canvas.drawColor(Color.WHITE); 
     canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint); 
     canvas.drawPath(mPath, mPaint); 
    } 

,我只有在我的

改變
相關問題