Android:如何覆盖位图并在位图上绘制?

标签 android graphics drawing bitmap overlay

其实我有三个问题:

  1. 是在位图上绘制图像还是创建位图作为资源然后在位图上绘制更好?性能方面,哪个更好?
  2. 如果我想在位图上绘制透明的东西,我该怎么做?
  3. 如果我想将一个透明位图叠加到另一个上,我该怎么做?

抱歉,列表太长了,但为了学习,我想探索这两种方法。

最佳答案

我不敢相信还没有人回答这个问题! SO上罕见的出现!

1

这个问题对我来说不太有意义。但我会给它一个刺。 如果您要询问直接绘制到 Canvas (多边形、阴影、文本等)与加载位图并将其blitting 到 Canvas 上,这将取决于您的绘图的复杂性。 随着绘图变得越来越复杂,所需的 CPU 时间将相应增加。 然而,位图在 Canvas 上的位图传输始终是一个常数时间,与位图的大小成正比。

2

在不知道什么是“某事”的情况下,我如何向您展示如何做到这一点? 您应该能够从#3 的答案中找出#2。

3

假设:

  • bmp1 大于 bmp2。
  • 您希望它们都从左上角重叠。

        private Bitmap overlay(Bitmap bmp1, Bitmap bmp2) {
            Bitmap bmOverlay = Bitmap.createBitmap(bmp1.getWidth(), bmp1.getHeight(), bmp1.getConfig());
            Canvas canvas = new Canvas(bmOverlay);
            canvas.drawBitmap(bmp1, new Matrix(), null);
            canvas.drawBitmap(bmp2, new Matrix(), null);
            return bmOverlay;
        }
    

关于Android:如何覆盖位图并在位图上绘制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1540272/

相关文章:

Java绘图编辑器小程序

java - java类初始化函数定义

android - 如何制作不同类型对象的ArrayList?

android - 如何设置形状的不透明度?

graphics - 0Dh 模式下的 DOS EGA 图形编程

java - 如何在三角形上填充颜色

java - 将 findViewById 从 Java 转换为 Kotlin

java - 如何通过url *.m3u8获取视频流的分辨率

java - JFrame 的奇怪显示问题

javascript - 什么更快;画一条线或创建一个 div?