android - 其中许多的位图

标签 android performance bitmap android-canvas bitmapfactory

伙计们,我有一个解决方案可以从另外 5 个不同的位图创建一个位图。但是,我希望这个解决方案更快。我找不到另一种简单快捷的方法来做同样的事情。

private void createImage() {
    // Magic numbers from image files
    int numberOfImages = 5;
    int imgWidth = 125;
    int imgHeight = 300;
    int totalwidth = imgWidth * numberOfImages;
    int totalheight = imgHeight;


    img = Bitmap.createBitmap(totalwidth, totalheight, Bitmap.Config.ARGB_8888);

    for (int i = 0; i < numberOfImages; i++) {
        Bitmap imgFile = BitmapFactory.decodeResource(context.getResources(), context.getResources().getIdentifier(
                "f" + i, "drawable", context.getPackageName()));
        for (int x = 0; x < imgWidth; x++) {
            for (int y = 0; y < imgHeight; y++) {
                int targetX = x + (i * imgWidth);
                int targetY = y;
                int color = imgFile.getPixel(x, targetY);
                img.setPixel(targetX, targetY, color);
            }
        }
    }


    img = Bitmap.createScaledBitmap(img, screenWidth, screenHeight, true);

}

最佳答案

你大部分时间都在那里。您已经为它们创建了一个足够宽的位图。

然后您需要做的是一次将位图直接绘制到其上,但一次绘制整个位图,而不是逐个像素。

你可以使用调用 Canvas 的东西来做到这一点.这有助于将内容绘制到位图上。

img = Bitmap.createBitmap(totalwidth, totalheight, Bitmap.Config.ARGB_8888);
Canvas drawCanvas = new Canvas(img);

for (int i = 0; i < numberOfImages; i++) {
    Bitmap imgFile = BitmapFactory.decodeResource(context.getResources(), context.getResources().getIdentifier(
            "f" + i, "drawable", context.getPackageName()));

          // Draw bitmap onto combo bitmap, at offset x, y.
          drawCanvas.drawBitmap(imgFile, i * imgWidth, 0, null);


}

关于android - 其中许多的位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13664182/

相关文章:

android - 图像大小调整在 Android 中不起作用

java - 在Java中将BMP图像转换为PNG或JPG,无需将整个图像加载到内存中

以即时模式下载 APK 后,Android In App Update 未安装 APK

java - Firebase ValueEventListener onDataChange() 未被调用

javascript - 在哪里检查我使用模拟器创建的数据库

javascript - 函数声明比函数表达式快?

javascript - 使用 Jquery 和文档就绪功能时,每页一个 JavaScript 文件或合并

android - 位图缓存如何工作?

javascript - Android 不安全 :tel: with phonegap application

performance - 提高 git status 性能的方法