java - 为什么 setPixel 在 android lollipop 中比在 android KitKat 中慢

标签 java android bitmap

我想将应用程序从 android kitkat 移植到 lollipop,我发现 setPixel 在 lollipop 中变慢了。

app的作用只是从buffer中绘制Bitmap;然而,在 android lollipop 中它需要大约 15 倍的时间。

如何改进我的代码? 谢谢。

public Bitmap draw(byte[] buffer) {
    Bitmap pic = Bitmap.createBitmap(200, 200, Bitmap.Config.ARGB_8888);

    for (int i = 0; i < 150; i++) {
        for (int j = 0; j < 180; j++) {
            byte temp = (byte) (buffer[(i*180 + j)]);
            int color=0xff000000;
            color = color ^ temp << 24; 
            pic.setPixel(i+10, j+10, color);
        }   
    }
    return pic;
}

最佳答案

如果您要设置多个像素,您应该始终使用 setPixels()而不是单独调用 setPixel()

关于java - 为什么 setPixel 在 android lollipop 中比在 android KitKat 中慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34280197/

相关文章:

Java:如何在另一个类中使用一个类中实例化的对象?

java - 如何在 Java/Android 中迭代 Node.js 数据库查询结果

WPF - 以 jpeg 格式保存 Canvas 的黑色背景

android - 尝试使用 Mockito 在 Presenter 中测试 void 方法时出现 NullPointerException

Android有效地将图像加载到imageview中

android - 如何使用 LayerDrawable 解决 OutOfMemoryError

java - 从 docker 容器变量环境访问 lo4j 日志记录级别

java - java中的电话键盘无法正常工作

java - android用arraylist值填充singlechoiceitems对话框

java - 使用摇一摇功能打开不同的 Activity