【问题标题】:Android - rotate cuts off corners of shapeAndroid - 旋转切断形状的角落
【发布时间】:2014-10-26 19:22:53
【问题描述】:

我希望将钻石制作为资源文件,因此我正在旋转一个正方形。问题是角落似乎被切断了,而是变成了六边形。另外作为旁注,如果可能的话,我想垂直拉伸它。

<?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 不抱歉。我不再从事当时的项目。

标签: android xml graphics android-xml


【解决方案1】:

方法如下:

**<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>

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

【讨论】:

  • 这不起作用,可以设置大小但drawable仍然在边缘被切断
【解决方案2】:

这里已经解决了:Diamond shape xml background for android view

只需根据需要更改填充颜色和描边宽度即可。

【讨论】:

    【解决方案3】:

    我正在寻找旋转方块这个帮助

    <?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 和项目顶部,底部,左侧,右侧是 20dpenter image description here

    【讨论】:

    • 这是因为对角线的大小不等于矩形边的大小,然后我们添加了额外的填充来处理这个问题。
    猜你喜欢
    • 2017-07-20
    • 2020-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多