当前位置: 首页 > 面试题库 >

在画布上绘制九个补丁(Android)

景信瑞
2023-03-14
问题内容

我正在尝试在Android的Canvas对象上绘制九个补丁。看起来很奇怪的是,尽管我使用draw9patch工具生成了我的九个补丁,但NinePatch的构造函数需要一个额外的字节数组“
chunk”来构造这九个补丁。

为什么这样不简单?什么是“块”?如果您自己完成此操作,您是如何进行的?

任何帮助表示赞赏。


问题答案:

您可以通过以下方式轻松实现:

// Load the image as a NinePatch drawable
NinePatchDrawable npd = (NinePatchDrawable)Resources.getDrawable(R.drawable.my_nine_patch);

// Set its bound where you need
Rect npdBounds = new Rect(...);
npd.setBounds(npbBounds);

// Finally draw on the canvas
npd.draw(canvas);


 类似资料:
  • 因此,我正在创建一个cordova应用程序,在该应用程序中,我从iphone库中拍摄一张照片,将其绘制到画布上,并向其添加另一张图像,以便将其保存为一张照片。到目前为止,我从iphone照片库中绘制的照片可以毫无问题地绘制到画布上,但是第二张图片没有。 当我加载第二张图像时,它首先被添加到具有绝对定位的div中,以便将其移动到我想要的任何位置。之后,我得到了实际的图像,它的来源和位置,并尝试将其绘

  • 我想在画布上画一段视频。为了实现这一点,我在Javascript中捕获onMouseDown和onMouseUp事件,以获得每个事件的x和y坐标(我需要在画布中设置视频的位置、宽度和高度)。 因此,每次我在画布上绘制视频时,我创建的上一个视频都应该停止,并且必须播放新的视频。两个问题: 1)视频不播放(功能只画第一帧),但他的音频可以 2) 如何停止以前绘制的视频? 演示:http://jsfid

  • 我试图编写一个SWT组件,它能够采取和绘制的实例。我的问题是SWT的和AWT的不兼容:SWT组件不能绘制,AWT/Swing组件不能绘制。 有几种方法试图以其他方式解决这个问题(也可能有一些变化,但基本上有以下两种): 在SWT图像和AWT BuffereImage之间转换 他们都有缺点,没有满足我的期望: 第一种方法是将SWT转换为,由于为每个像素创建了一个新的实例,因此对大图像的性能较差 第二

  • 我编写了这段代码,可以在JavaFX画布上绘制。它可以很好地工作,但我不知道如何重新绘制画布(比如在Swing中),以便在新画布上重新开始绘制。这是我的代码,非常感谢你的帮助!马里奥

  • 我是Android新手,发现了很多东西。但现在我很沮丧。我想做一个六角形棋盘游戏,用瓷砖。我找到了很多芭蕾舞团,最后决定画出我想要的六边形。 我创建了一个从视图扩展的“Hex”类,添加了一些变量等等。以下是我在主XML布局中的内容: r=大小,x和y是画布上的偏移。以下是我在活动中看到的内容:主活动屏幕 但现在我想选择单十六进制。例如,我想选择左上角的,或右下角的。我在每个视图上都添加了OnCli