【问题标题】:Print Bitmaps onto other bitmap android将位图打印到其他位图 android
【发布时间】:2010-12-23 03:22:10
【问题描述】:

我试图让我的游戏在手机上更容易一些,所以我想找到一种方法将一堆位图打印到另一个大的位图上,这样我就可以只做一次,而不是每次画面被重绘。那么,有没有办法做到这一点?我知道有一种方法可以将打印到画布上的所有内容打印到位图上,但我似乎无法让它发挥作用。如果这是有人可以解释如何做到这一点的唯一方法?提前致谢。

这是我尝试过的,但效果不佳

Bitmap background; 
Canvas canvas; 

private void methodName() {
    background = Bitmap.createBitmap(width, height, someKindOfConfigThing); 
    canvas = new Canvas(background);
    canvas.drawBitmap(blahblah);
}

【问题讨论】:

    标签: android canvas bitmap


    【解决方案1】:

    您要做的是创建主位图,将其附加到您可以绘制的画布上。

    Bitmap bitmap = Bitmap.createBitmap(width, height, Config.RGB_565);
    Canvas c = new Canvas(bitmap);
    

    您可以使用

    在此画布上绘制(部分)位图
    c.drawBitmap(anotherBitmap, transformMatrix, paint);
    

    要将主位图附加到视图,您将创建一个新的 ImageView,调用 setImageBitmap 传递您的主位图并使用 setContentView 将其设置为当前内容视图。

    【讨论】:

    • 当它尝试按照你在上面的方式初始化位图时,我有什么理由会得到一个空指针?
    • 如果您只是复制该行,它会期望宽度和高度是现有变量..
    • 我将这些更改为我现有的,并导入了配置编辑:我还没有初始化我的关卡对象...谢谢!
    • 在这种情况下,不应该没有问题。确保您导入了正确的配置,即 android.graphics.Bitmap.Config
    【解决方案2】:

    如果您想将多个位图组合到另一个大的位图并重复使用它,那么您已经走对了!告诉我们你做了什么,并告诉我们结果是什么。我想我们可以帮助你:)

    [更新] 应该可以将这个新位图保存到磁盘或将其临时存储为变量:

    private void methodName() {
        background = Bitmap.createBitmap(width, height, someKindOfConfigThing); 
        canvas = new Canvas(background);
        // drawing on the canvas should change the bitmap "background" too
        canvas.drawBitmap(blahblah);
        FileOutputStream fos = null;
        try {
            fos = new FileOutputStream("/path/to/image.png");
            background.compress(Bitmap.CompressFormat.PNG, 100, fos);
            fos.close();
        } catch (Exception e) {
            // catching...
        }
    }
    

    【讨论】:

    • 好吧,我创建了一个我运行的方法来创建位图,看起来像位图背景;帆布帆布;私人无效方法名(){背景= Bitmap.createBitmap(宽度,高度,someKindOfConfigThing);画布=新画布(背景); canvas.drawBitmap(blahblah); }
    • 我按 Enter 而不是 shift+enter,我编辑了我的评论...但它不可读,所以我将其添加到初始帖子中
    • 酷,谢谢!当我制作我的关卡编辑器时,我将不得不将它用于其他东西
    猜你喜欢
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多