实施照片拼贴

时间:2015-07-25 23:14:46

标签: android android-layout layout shapes

我正在制作一个拼贴制作应用,该主板有4个布局RelativeLayout,布局中包含ImageView个,而且imageViews适用于拖动移动缩放。 所有布局都可以是自定义形状,如三角形对角线,如图片中所示。

triangles

diagonal

我尝试使用自定义RelativeLayout并为dispatchDraw添加了覆盖,使用clipPath制作自定义形状。

@Override
protected void dispatchDraw(Canvas canvas) {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR2
            && Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        setLayerType(LAYER_TYPE_SOFTWARE, null);
    }
        Path clipPath = new Path();
        clipPath.addPath(triangle());
        canvas.clipPath(clipPath);
        canvas.drawColor(Color.TRANSPARENT);
        super.dispatchDraw(canvas);
}

public Path triangle(Point p1, Point p2, Point p3)
{
    Path p = new Path();
    float midX = getWidth() / 2;
    float midY = getHeight() / 2;

    p.moveTo(midX, midY);
    p.lineTo(p1.x, p1.y);
    p.lineTo(p2.x, p2.y);
    p.lineTo(p3.x, p3.y);
    p.lineTo(p1.x, p1.y);
    retrun p;
}

clipPath以某种方式完成了诀窍的一部分,但它绘制了路径并使外部部分透明但没有剪切它们,因此布局仍然是矩形而不是三角形。

我想要一些使布局完全符合路径形状的东西。

任何解决方案?

0 个答案:

没有答案