Android-给定一个六边形绘图,如何在其中添加数字?

Android-给定一个六边形绘图,如何在其中添加数字?,android,Android,我有一个六边形jpg文件,如下所示: 我想把我的一些选择放在它的中心。因此,最终输出将如下所示: 我希望数字始终直接居中。有没有办法用android xml中的shape标记来实现这一点?我还需要指定六边形的宽度和高度。我不认为形状标签会有帮助,因为我已经定义了形状。你认为我最好的办法是使用一个按钮并在上面写上数字,同时保持六边形作为背景吗?我认为你可以使用两种主要方法。正如您所说,您可以使用按钮/文本视图并将背景设置为hexagon资源。正如你所说的那样,这需要每次都扩大这种观点。另一种方法是

我有一个六边形jpg文件,如下所示:

我想把我的一些选择放在它的中心。因此,最终输出将如下所示:


我希望数字始终直接居中。有没有办法用android xml中的shape标记来实现这一点?我还需要指定六边形的宽度和高度。我不认为形状标签会有帮助,因为我已经定义了形状。你认为我最好的办法是使用一个按钮并在上面写上数字,同时保持六边形作为背景吗?

我认为你可以使用两种主要方法。正如您所说,您可以使用按钮/文本视图并将背景设置为hexagon资源。正如你所说的那样,这需要每次都扩大这种观点。另一种方法是使用画布直接在图像上绘制数字,然后将图像放入ImageView或其他类似视图中。要在图像上绘制,请执行以下操作:

int fontSize = 200; //set your font size
Bitmap baseImage = BitmapFactory.decodeResource(this.getResources(), R.drawable.hexagon); //load the hexagon image
Bitmap image = baseImage.copy(Bitmap.Config.ARGB_8888, true); //create mutable bitmap for canvas. see: http://stackoverflow.com/a/13119762/1896516

//the "paint" to use when drawing the text
Paint paint = new Paint(); //see here for all paint options: https://developer.android.com/reference/android/graphics/Paint.html
paint.setTextSize(fontSize); //sets your desired font size
paint.setColor(Color.BLACK); //set the desired color of the text
paint.setTextAlign(Paint.Align.CENTER); //set the alignment of the text

Canvas canvas = new Canvas(image); //create a canvas from the bitmap
canvas.drawText("#", image.getWidth()/2, image.getHeight()/2 + fontSize/4, paint); //draw the number onto the hexagon

ImageView iv = (ImageView) findViewById(R.id.iv);
iv.setImageBitmap(image);

你可能需要根据你的图像是否有边框等来调整文本定位。此外,请注意,我还没有真正测试这两种方法的性能,所以我不确定哪种方法最终会是最有效的方法。这就是说,第一种方法可能更容易做到,因为它将自己负责定位。希望这有帮助

我想一个按钮或者一个自定义背景的文本视图就可以了。我不确定是否有一种更便宜的方法来做这件事。因为每当我需要的时候,我都要放大这个视图。但感谢任何视图组,如linearlayout或relativelayout,以图像为背景,以单独的文本视图为中心。