【问题标题】:Android draw a part of scaled bitmap using canvasAndroid 使用画布绘制缩放位图的一部分
【发布时间】:2015-05-21 13:34:01
【问题描述】:

我正在使用画布,图像为 1000x500,手机宽度为 480,高度为 800

比例样本:

        scale = (float) (height / image.getHeight());
        image_width = image.getWidth() * scale;
        image_height = image.getHeight() * scale;

如何使用画布绘制这个缩放的图像,只有图像的中心(屏幕大小)可见,而左右两侧在屏幕之外?

【问题讨论】:

标签: android android-canvas


【解决方案1】:

这样做

Rect rs = new Rect();
Rect rd = new Rect();
rs.left = rs.top = 0;
rs.right = 480;
rs.bottom = 800;

<calculate destination rectangle from device size>

canvas.drawBitmap(myBitmap, rs, rd, null);

您还可以缩放和平移(移动)整个画布

canvas.scale(float scaleX, float scaleY);
canvas.translate(float dx, float dy);

【讨论】:

  • 这行得通,但我同意@Droid 内存中的位图不应大于目标渲染大小。
  • canvas.scale(float scaleX, float scaleY);工作正常,谢谢)
  • 我已经添加了 canvas.scale(x, y),现在它的工作速度很慢。如果我只绘制一个位图,它可以正常工作,但如果我添加更多,那么它就像一个幻灯片放映。如何解决?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-22
  • 1970-01-01
  • 2012-06-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多