2012-06-27 122 views
2

我正在嘗試爲自己的Android繪畫應用製作自定義畫筆。我開始使用邁克爾的代碼(found here),並且我設法獲得了.png畫筆並將其用作位圖並重繪它。它工作正常,但我不能改變顏色。嘗試使用setcolorfiltercolormatrixfilter,但它似乎並沒有工作。任何人都知道我能做到這一點?Android自定義畫筆顏色

private Bitmap mBitmapBrush; 
    private Vector2 mBitmapBrushDimensions; 
    private List<Vector2> mPositions = new ArrayList<Vector2>(100); 
private Paint mPanit; 


    public MyView(Context c) { 
     super(c); 

     mPath = new Path(); 
     mBitmapPaint = new Paint(Paint.DITHER_FLAG); 
     mBitmapBrush = BitmapFactory.decodeResource(c.getResources(),R.drawable.brush1); 
     mBitmapBrushDimensions = new Vector2(mBitmapBrush.getWidth(), mBitmapBrush.getHeight()); 

    } 

@Override 
    protected void onDraw(Canvas canvas) { 
     canvas.drawColor(0xFFAAAAAA); 

     canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint); 
     for (Vector2 pos : mPositions) { 

      canvas.drawBitmap(mBitmapBrush, pos.a, pos.b, mPanit); 

     } 



    invalidate(); 
    } 

當我嘗試使用Colormatrixfilter時,.set函數發生錯誤。

+0

下面的例子中,給出了顏色拾取:http://about-android.blogspot.in/2010/04/create-cutomized -color-picker-in.html –

+0

什麼是錯誤?我們可以看到你嘗試使用'ColourMatrixFilter'和'setColourFilter'嗎?另外你似乎沒有給mPanit分配任何東西,如果你不這樣做,那麼你可能會看到'NullPointerException' – weston

+0

排序錯誤,現在工作正常,已經忘記了ColorMatrixColorFilter。我現在有另一個問題。有沒有什麼辦法可以將我的.png圖像繪製爲一個「路徑」以獲得窒息畫筆效果。我越快越快我的手指我想像素 – user1472707

回答

1

我有同樣的問題。爲了改變位圖顏色,你需要給你的繪畫對象添加顏色並將其應用到位圖中。看到這裏的工作示例,

for (Vector2 pos : customBrushMap.get(p)) { 
     Paint paint = new Paint(); 
     ColorFilter filter = new PorterDuffColorFilter(R.Color.GREEN, PorterDuff.Mode.SRC_IN); 
     paint.setColorFilter(filter); 
     canvas.drawBitmap(mBitmapBrush, pos.x, pos.y, paint); 
} 

結果,

enter image description here