我需要绘制在我的布局歪斜的角落,基本上我的布局高度是60dp,我试图做他们使用层列表的xml文件,但它不是给所需的特别是当设备在屏幕上变得更大,我想得到一些帮助或如果可能的话,以编程方式绘制这些歪斜的角落,使他们固定到所有屏幕,当屏幕也旋转,谢谢
- 这是我的xml文件
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/bgColor" />
<item android:top="-20dp"
android:bottom="-50dp"
android:left="-20dp"
android:right="400dp">
<rotate
android:fromDegrees="368"
android:pivotX="50%"
android:pivotY="00%">
<shape
android:shape="rectangle">
<solid android:color="#DFDBDB"/>
</shape>
</rotate>
</item>
<item android:top="-20dp"
android:bottom="-50dp"
android:left="395dp"
android:right="-120dp">
<rotate
android:fromDegrees="-371"
android:pivotX="50%"
android:pivotY="00%">
<shape
android:shape="rectangle">
<solid
android:color="?android:colorBackground"/>
</shape>
</rotate>
</item>
</layer-list>
- 预期结果
2条答案
按热度按时间lsmd5eda1#
计算连接Path()的点的坐标是你工作中最重要的事情。我的计算是基于View的宽度。希望能对你有所帮助。
ccrfmcuu2#
要以编程方式绘制斜角,可以创建扩展View或其子类之一(如RelativeLayout或FrameLayout)的自定义视图。在自定义视图的onDraw方法中,可以使用Path对象定义视图的形状,然后使用颜色或可绘制对象填充它。
这里有一个例子,你可以如何创建一个自定义视图与歪斜的角落
在本例中,path对象用于定义视图的形状。cornerSize变量用于指定倾斜角的大小,可以在资源中将其定义为维度值。每次需要重绘视图时(例如,当屏幕旋转或视图的维度更改时),都会调用onDraw方法。
您可以使用XML或编程方式将此自定义视图添加到布局中。以下是如何将其添加到ConstraintLayout的示例:
在本例中,SkewedCornerView作为ConstraintLayout的子视图添加,并填充其父视图的维。background属性用于指定视图的背景颜色,在本例中为bgColor。