【问题标题】:Drawing multiple images on Canvas in Android在 Android 的 Canvas 上绘制多个图像
【发布时间】:2012-02-10 03:12:04
【问题描述】:

我正在尝试在画布上绘制多个图像并显示它,但我不知道如何。

这是我的代码:

public class CustomDrawableView extends View {
private Drawable mDrawable;
private Drawable mD2;

public CustomDrawableView(Context context) {
    super(context);

    int x = 40;
    int y = 100;
    int width = 20;
    int height = 10;

    Resources res = context.getResources();
    mDrawable = res.getDrawable(R.drawable.main);
    mDrawable.setBounds(x, y, x + width, y + height);

    mD2 = res.getDrawable(R.drawable.virus);
    mD2.setBounds(x+50,y-70,width+10,height+5);
}

protected void onDraw(Canvas canvas) {
    mDrawable.draw(canvas);
    Canvas canvas2 = new Canvas();
    mD2.draw(canvas2);
}
}

【问题讨论】:

  • 您不需要创建画布的新实例,只需执行 md2.draw(canvas)。
  • 我试过了......但它没有用。这就是为什么我认为也许 2 幅画布会起作用......
  • 只绘制mDrawable,然后只绘制md2会发生什么,它们会显示吗?
  • 其实可以...非常感谢...我只是高度和宽度错误...
  • 我添加了答案,以防你想给我信用:)

标签: android android-layout canvas drawable


【解决方案1】:

我没有在 Canvas 上使用过 Drawables,但我可以肯定地告诉你,使用位图它可以像这样工作得很好:

canvas.drawBitmap(bmp1,0,0,myPaint); // draws in top left corner
canvas.drawBitmap(bmp2,100,100, myPaint); // draws at an offset of 100 px on both the X and the Y axis

【讨论】:

    【解决方案2】:

    您不需要创建画布的新实例,只需执行 md2.draw(canvas)。你也可以试试:

    当你只绘制 mDrawable,然后只绘制 md2 时会发生什么,它们会显示吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-18
      • 1970-01-01
      • 2021-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-15
      • 1970-01-01
      相关资源
      最近更新 更多