我有问题,我需要在图像中的透明区域的中心添加一个按钮。
示例:
根据上面的图像我有数百个相框,每个框架都有一个透明区域,我需要在这个透明区域的中心添加一个按钮。
现在我想要一个解决方案,我可以以编程方式获得坐标“x”。 请帮忙。
答案 0 :(得分:0)
public static PointF getTransparentCenter(Bitmap bitmap, Point viewSize) {
List<Point> transparentPoints = new ArrayList<>();
for (int i = 0; i < bitmap.getWidth(); i++) {
for (int j = 0; j < bitmap.getHeight(); j++) {
int pixel = bitmap.getPixel(i, j);
if ((pixel & 0xff000000) == 0) {
//the point color is transparent
transparentPoints.add(new Point(i, j));
}
}
}
int totalX = 0;
int totalY = 0;
for (Point transparentPoint : transparentPoints) {
totalX += transparentPoint.x;
totalY += transparentPoint.y;
}
float centerX = (float) totalX / transparentPoints.size();
float centerY = (float) totalY / transparentPoints.size();
float x = viewSize.x * centerX / bitmap.getWidth();
float y = viewSize.y * centerY / bitmap.getHeight();
return new PointF(x, y);
}
我认为这很愚蠢,但我认为别无他法。