我如何分割LinearLayout
或RelativeLayout
对角分成两种不同的大小,每种大小都有不同的子视图.ViewPager
上半部分的示例和LinearLayout
底部的不同部分.
这样的事情:
我怎样才能实现这一目标?请帮忙
最简单的方法是用偏斜切割制作背景图像.如果您希望拥有动态布局并且想要真正剪切小部件,请使用Canvas.saveLayer/restore.像这样:
private Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); private Xfermode pdMode = new PorterDuffXfermode(PorterDuff.Mode.CLEAR); private Path path = new Path(); protected void dispatchDraw(Canvas canvas) { int saveCount = canvas.saveLayer(0, 0, getWidth(), getHeight(), null, Canvas.ALL_SAVE_FLAG); super.dispatchDraw(canvas); paint.setXfermode(pdMode); path.reset(); path.moveTo(0, getHeight()); path.lineTo(getWidth(), getHeight()); path.lineTo(getWidth(), getHeight() - TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 50, getResources().getDisplayMetrics())); path.close(); canvas.drawPath(path, paint); canvas.restoreToCount(saveCount); paint.setXfermode(null); }
要点:https://gist.github.com/ZieIony/8480b2d335c1aeb51167
顺便说一句.这个东西最近很受欢迎:)
我觉得这个答案有点迟了,但你应该看到这个惊人的教程.它很容易,没有任何外部库.输出将如下:
你需要添加 layer-list
现在你只需要将这个drawable添加到你的布局中.
布局将如下:
必须检查此链接以便更好地理解.