在Android中如何在png图像文件

时间:2017-03-03 10:41:19

标签: android image-processing layout

我有问题,我需要在图像中的透明区域的中心添加一个按钮。

示例:

enter image description here

根据上面的图像我有数百个相框,每个框架都有一个透明区域,我需要在这个透明区域的中心添加一个按钮。

现在我想要一个解决方案,我可以以编程方式获得坐标“x”。 请帮忙。

1 个答案:

答案 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);
}

我认为这很愚蠢,但我认为别无他法。