【发布时间】:2012-06-27 11:30:46
【问题描述】:
我正在尝试为我的 Android 绘画应用制作自定义画笔。我从 Michael 的代码 (found here) 开始,我设法获得了 .png 画笔并将其用作位图并重绘它。它工作正常,但我不能改变颜色。尝试使用setcolorfilter 和colormatrixfilter,但它似乎不起作用。有谁知道我该怎么做?
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 函数出错。
【问题讨论】:
-
这里以ColorPicker为例:about-android.blogspot.in/2010/04/…
-
什么是错误?我们可以看到您尝试使用
ColourMatrixFilter和setColourFilter吗?此外,您似乎没有为mPanit分配任何东西,如果您不这样做,那么您可能会看到NullPointerException -
对错误进行了排序,现在工作正常,忘记了 ColorMatrixColorFilter。我现在有另一个问题。有什么方法可以将我的 .png 图像绘制为“路径”来获得令人窒息的画笔效果。我拖动手指的速度越快,我错过了像素
-
显然是从这里复制的:stackoverflow.com/questions/8428874/…
-
@Michael:正如每页底部的一行所说,我们在此处发布的内容已获得a Creative Commons license 的许可,任何人都可以复制它只要他们注明作者 - 如果您发现有人复制了您的资料而没有链接到他们获得资料的地方,请标记它以引起版主注意或使用页面底部的“联系我们”链接。
标签: java android graphic brush colormatrixfilter