先上一张样图
真是一个奇怪的需求,一般来说,都是直接用图片背景来实现这个样式。
不过为了压缩apk的体积,也可以找一些方法用android自带的layer-list来实现。
首先这其实是2部分组成的layer-list,上面一层是倾斜的灰色长方体,下面一层是渐变的长方体
先实现下面一层,渐变长方体
<item> <shape android:shape="rectangle"> <!-- rectangle表示为矩形 --> <!-- 渐变的颜色 --> <gradient android:angle="0" android:centerX="0.5" android:centerY="0" android:endColor="@color/weight_blue" android:startColor="@color/weight_green" /> </shape> </item>
使用shape指定图形,使用gradient来实现渐变,很容易理解,从绿色开始到蓝色结束
接着定义一个灰色背景的长方体
<item> <shape android:shape="rectangle"> <solid android:color="@color/main_bg" /> </shape> </rotate> </item>
这样第二个长方体会覆盖在第一个长方体上,并且因为不是透明的,所以就完全看不见第一个长方体了
最后我们把这个长方体进行旋转,并且设置XY轴偏移
<rotate android:fromDegrees="105" android:pivotX="86%" android:pivotY="100%" android:toDegrees="45">
当pivotX设置50%时,表示在当前控件的左上角加上自己宽度的 50% (即自身宽度中心)作为起始点
这几个参数要针对需求具体调试
可以参考图解 Android 动画中 android:pivotX 和 android:pivotY 属性的含义