2

Androidペイントアプリ用のカスタムブラシを作成しようとしています。Michaelのコード(ここにあります)から始めて、.pngブラシを取得し、それをビットマップとして使用して再描画することができました。正常に動作しますが、色を変更できません。を使用してみましたsetcolorfiltercolormatrixfilter、機能していないようです。誰もが私がこれを行うことができる方法を知っていますか?

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関数でエラーが発生していました。

4

1 に答える 1

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);
}

結果、

ここに画像の説明を入力

于 2016-08-18T17:11:37.983 に答える