java - 使用自定义颜色而不是纯色排队线性填充填充
问题描述
目前我正在为孩子们开发着色书。现在我已经成功应用队列线性洪水填充来制作“触摸填充”功能。但就目前而言,填充颜色是纯色。有什么办法可以让我像这个应用程序一样用来自 png 的自定义颜色填充颜色吗?
这是我的 View 类构造函数:
public MyView(Context context) {
super(context);
paint = new Paint();
paint.setAntiAlias(true);
pd = new ProgressDialog(context);
paint.setStyle(Paint.Style.FILL);
paint.setStrokeJoin(Paint.Join.ROUND);
paint.setStrokeWidth(5f);
paint.setColor(Color.RED);
mBitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.cartoon).copy(Bitmap.Config.ARGB_8888, true);
this.path = new Path();
}
绘制:
@Override
protected void onDraw(Canvas canvas) {
this.canvas = canvas;
canvas.drawBitmap(mBitmap, 0, 0, paint);
}
触摸事件:
@Override
public boolean onTouchEvent(MotionEvent event) {
float x = event.getX();
float y = event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
p1.x = (int) x;
p1.y = (int) y;
final int sourceColor = mBitmap.getPixel((int) x, (int) y);
final int targetColor = paint.getColor();
new TheTask(mBitmap, p1, sourceColor, targetColor).execute();
invalidate();
}
return true;
}
对于我的 QueueLinearFloodFiller 类,我使用此答案中的代码: https ://stackoverflow.com/a/16968484/13560859
任何帮助将不胜感激,谢谢!
解决方案
推荐阅读
- python - 如何在python中查看文件的内容
- c# - 从 C# 运行 PowerShell 脚本
- javascript - 遵循中继分步指南时出现 AST 节点错误
- xcode - 如何从 CLI 构建 DocC 文档
- r - ggplot:有没有更简洁的方式使用主题背景?
- elasticsearch - elasticsearch节点不活跃
- google-sheets - 从工作表 1 中的单元格中调用工作表名称以从具有自定义名称的工作表中调用数据
- nginx - 不要写端口并添加应用程序名称以进行远程访问
- javascript - JSON API 返回未定义
- c# - 创建插入操作,但是在从 Model StudentView -> Student 转换并传递到 InsertStudentAsync 之后,函数返回 null