如何在Android中创建带圆角边框的自定义视图

时间:2016-01-26 16:35:04

标签: android android-custom-view

您好,

我正在尝试了解如何在Android上制作自定义视图(带绿色背景),如附加图片所示。请建议,我应该使用Path这个还是别的什么?

attached image

2 个答案:

答案 0 :(得分:0)

一个好的起点是http://tips.androidhive.info/2013/09/android-layout-rounded-corner-border/。然后,您可以使用属性值来获得所需的背景。希望这会有所帮助。

答案 1 :(得分:0)

你有两个很好的选择来完成这个。

位图

在Photoshop,Gimp或类似的东西中创建所需的图像。将其导出为png文件,然后将其作为bitmap resource导入到Android应用程序中。

这是迄今为止两种方法中更简单,更快速的方法,但这里有两个重要问题。首先,你应该supply bitmaps for each screen density bucket。其次,您添加的每个位图资源都会增加应用的安装大小。这可能会很快失控。

路径

正如您在问题中提到的,您可以使用Path直接在画布上绘制所需的形状。更具体地说,您将使用cubicTo()方法创建贝塞尔曲线。

我建议使用图像编辑器的“路径”工具来了解控制点如何影响曲线。在图像编辑器中绘制形状后,记下路径上每个点的坐标以及相应的控制点。然后做一点数学运算将点转换为图像的整体宽度和高度的比率。

您可以在应用中将形状实现为ViewDrawable。在任何一种情况下,您都将绘制到Canvas。重要的一步是通过将比率与绘图区域的大小相乘来设置路径。绘制花式边缘后,请务必通过lineTo()绘制直边并使用close()关闭形状。