当前位置: 首页 > 知识库问答 >
问题:

在ImageButton上绘制位图

张唯
2023-03-14

我现在正在做一个游戏,遇到了一些我想不出来的事情。我有一系列的ImageButton,我正在迭代,并在每个按钮上绘制位图。位图本身绘制得很好,但是我也想在这些位图上绘制矩形。

相关代码(如果这还不够,我可以发布更多):

for (int i = 1; i < group.getChildCount(); i++) {
        ImageButton button = (ImageButton) group.getChildAt(i);
        Bitmap bitmap = getBackgroundImage();
        bitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true);

        Canvas canvas = new Canvas(bitmap);

        for (int j = 0; j < obstacles.get(i - 1).size(); j++) {
            Obstacle o = obstacles.get(i - 1).get(j);
            canvas.drawRect((float) o.getXLower(), (float) o.getYLower(),
                    (float) o.getXUpper(), (float) o.getYUpper(), paint);
        }

        Drawable background = new BitmapDrawable(getResources(), bitmap);

        button.setBackground(background);
    }

位图本身出现在按钮上,但是我想要绘制的矩形没有被绘制。

共有1个答案

辛意智
2023-03-14

你会打电话给我吗

ImageButton.setImageBitmap(Bitmap)

相反

 类似资料:
  • 问题内容: 我将JPanel包裹在JScrollPane中,我希望始终将矩形绘制在同一位置上=使用滚动条移动不会影响矩形的可见性。 我尝试了以下代码: 但是仅当更改整个JPanel的大小时才重新绘制矩形。 问题答案: IIRC 将尝试最大程度地减少滚动完成时的重绘次数,因此它不会总是导致组件被更新。 标准技术是使用。将您添加到下层,并在其上面添加不透明的玻璃面板组件。请参阅Swing教程中的如何使

  • 问题内容: 我目前有一个迷宫游戏,它绘制一个5 x 5的正方形(占用屏幕的宽度并将其均匀分割)。然后,对于每个使用x和y坐标的框,我使用drawRect绘制彩色背景。 我遇到的问题是我现在需要在同一位置绘制图像,因此需要替换当前的纯背景色填充。 这是我当前用于drawRect的代码(一些示例): 然后,我还需要为画布中的所有其他正方形实现背景图像。该背景将在其顶部绘制简单的1px黑色线条,当前代码

  • 我有一个加载了位图的ImageView。当用户触摸位图时,我使用画布在位图上的触摸位置绘制一个圆。现在,我需要撤消绘制的圆。在任何地方,我都能找到一些片段来撤销绘制的路径,而不是直接撤销一个圆。有人有办法撤消先前绘制的圆吗?

  • 我正在做一个国际象棋应用程序,当我绘制棋盘的瓷砖时,它们在(透明)背景中不会变色。基本上,我想要的是,它类似于在ImageView中发生的事情,该图像视图显示具有彩色背景的图像(具有透明背景)。 这是代码 这就是棋盘的样子(左图) 如果我在之前注释掉这2行,我就会得到正确的图像。 我的作品是带有透明背景的普通图像,作品没有画在正方形中。我怎么能有作品背后的红色呢?(就像带有背景色的相同图像的Ima

  • 问题内容: 关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 6年前关闭。 改善这个问题 我想用Java绘制图形(节点和边)。但是,由于我不知道该怎么做,因此在开始之前我想寻求一些建议。 我应该怎么做? 使用Graphics2D包,对吗? 节点的标签怎么样?我应该使用诸如drawString之类的东西并手动处理所有“

  • 我使用canvas在位图上绘制,并将位图覆盖在imageView上。 我已经画了一个基本的绘图在方法中被称为DrawGraph(),当用户触摸画布我必须画一个圆圈,因为我已经使用画布在onTouchEvent()方法,它没有画任何东西,代码是下面给出的,什么是问题,我如何解决这个问题。 我还尝试创建另一个位图,上面有一条直线,将新位图设置为在绘图()末尾的图像视图,并检查点击()。它显示新的位图(