android - 如何将较小的位图复制到较大的位图中?

标签 android canvas bitmap

希望这应该是一个简单的问题。我正在尝试将一系列小位图复制到一个较大的位图中,并排排列,像素之间没有任何间隙或重叠。例如,如果我有 3 个正方形位图,我想将它们复制到一个细长的矩形中。我知道如何做相反的事情,即从较大的位图创建一个小的位图,但不是这样。什么是正确的命令?

(如果有人好奇,我想这样做是为了能够重用我为处理单个位图的动画而编写的一些代码。)

谢谢!

最佳答案

为大位图创建 Canvas ,然后用它来绘制小位图。我是 android 的新手,但我猜它是这样的:

Bitmap makeBigBitmap(Bitmap srcBmps[]) {
    Bitmap wideBmp;
    Canvas wideBmpCanvas;
    Rect src, dest;

    // assume all of the src bitmaps are the same height & width
    wideBmp = Bitmap.createBitmap(srcBmps[0].getWidth() * srcBmps.length, 
        srcBmps[0].getHeight(), srcBitmaps[0].getConfig());

    wideBmpCanvas = new Canvas(wideBmp); 

    for (int i = 0; i < srcBmps.length; i++) {
         src = new Rect(0, 0, srcBmps[i].getWidth(), srcBmps[i].getHeight());
         dest = new Rect(src); 
         dest.offset(i * srcBmps[i].getWidth(), 0); 

         wideBmpCanvas.drawBitmap(srcBmps[i], src, dest, null); 
    }

    return wideBmp;
}

关于android - 如何将较小的位图复制到较大的位图中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2358460/

相关文章:

html - 允许用户在 HTML5 Canvas 游戏中键入文本

android - 将图像从 DCIM 文件夹复制到另一个文件夹会导致图像质量下降

c# - 为输入声明一个 Brushes 变量

c - 找到将零插入位模式的所有方法

jquery - 复制雪鸟的动画效果

android - 在新的 Android Studio(Bumblebee 及更高版本)Gradle 设置中将 Android Gradle 插件版本放在哪里?

Android SetInexactRepeating 根本没有触发

android - 以编程方式将 TableRow 添加到 TableLayout 不起作用

android - 如何识别在 Canvas 上绘制的字符

Android Studio 一次调试两个模块