安卓 - 旋转切断了形状的角落

13

我希望将钻石制作成资源文件,因此我正在旋转正方形以此为基础。问题在于角落似乎被切掉了,变成了六边形。此外,如果可能的话,我还想在垂直方向上拉伸它。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <rotate
        android:fromDegrees="45"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toDegrees="45"
        >
        <shape android:shape="rectangle">
            <size
                android:height="40dp"
                android:width="40dp" />
            <solid
                android:color="@color/level_1_color" />
        </shape>
    </rotate>
</item>

在此输入图片描述


我知道这已经是4年前的事了,但你最终解决了吗?我也遇到了同样的问题,它让我疯狂。 - ferenckovacsx
@ferenckovacsx 不好意思,我已经不在之前的项目上工作了。 - uesports135
3个回答

4
这是如何做到的:
**<item android:left="5dp" android:right="5dp" android:top="5dp" android:bottom="5dp">**
    <rotate
        android:fromDegrees="45"
        android:toDegrees="45" >
        <shape
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="rectangle">

            <solid
                android:color="@color/sym_orange_bdfm"/>

            <size
                android:width="23dp"
                android:height="23dp"/>
        </shape>
    </rotate>
</item>

根据需要调整左/右/上/下。


这个不行,可以设置大小,但是可绘制对象仍然会在边缘处被裁剪。 - staa99

1

1
我正在寻找旋转正方形的帮助。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
         android:bottom="20dp"
         android:left="20dp"
         android:right="20dp"
         android:top="20dp">
        <rotate
             android:drawable="@color/colorAccent"
             android:fromDegrees="-135"
             android:pivotX="50%"
             android:pivotY="50%"
             android:toDegrees="-45"
             android:visible="true">
             <shape android:shape="rectangle">
                 <solid android:color="@color/colorPrimaryDark" />
                 <corners android:radius="15dp" />
                 <size
                     android:width="90dp"
                     android:height="90dp" />
                 <solid
                     android:angle="45"
                     android:endColor="@color/colorAccent"
                     android:gradientRadius="34"
                     android:startColor="@color/colorPrimary" />
             </shape>
         </rotate>
     </item>
</layer-list>

但是我按照一定的比例关系来设置高度和宽度,90dp,项目的顶部、底部、左侧和右侧都是20dp。在此输入图片描述


这是因为对角线的长度不等于矩形边长,所以我们需要添加额外的填充来处理这个问题。 - Ali Hassan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接