Android菱形图案可绘制对象

3
我有一个问题 - 如何在Android XML中绘制可缩放的菱形drawable?我想要绘制类似于这样的东西:rhombus 我尝试绘制矩形并将其旋转45度:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:top="10dp" android:right="10dp" android:left="10dp" android:bottom="10dp">
   <rotate
       android:fromDegrees="45"
       android:toDegrees="45"
       android:pivotX="50%"
       android:pivotY="50%" >
      <shape
          android:shape="rectangle" >
         <solid
             android:color="@color/accent" />
      </shape>
   </rotate>
</item>
</layer-list>

但结果很糟糕,一个角比另一个高: rhombus 2 我认为这是因为单元格不是正方形。那么,如何绘制菱形以便能够轻松缩放?

文本是如何呈现的?我猜测两个数字的宽度正在扭曲形状。 - tallpaul
文字在文本视图中居中显示,并将此可绘制内容设置为其背景。 - Eddwhis
在你的形状标签内,也要加上size标签,并且将高度和宽度都设为相同的值。不用担心数值,可以都设为5dp。这样做可以确保可绘制对象的纵横比。 - Mohammed Atif
2个回答

0

我曾经遇到同样的问题,但是多亏了你的可绘制对象,我找到了画菱形的方法。你的问题在于高度和宽度,而在我的情况下,我想把它放在一个12dp的视图上,所以我的宽度是那个的一半。如果有人再次遇到这个问题,这就是答案,你的结果将会像这样:

    <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:height="6dp" android:width="6dp" android:right="2dp"
      android:left="2dp">
   <rotate
                   android:fromDegrees="45"
                   android:pivotX="50%"
                   android:pivotY="50%" >
      <shape
                      android:shape="rectangle" >
         <solid
                         android:color="@color/genioAccent" />
      </shape>
   </rotate>
</item>
</layer-list>

Result


1
在API 23之前,drawables中的高度和宽度属性不起作用吗? - Eugen Pechanec
是的,您是对的,但他们从未说明他们正在使用哪个版本 @EugenPechanec - Rodolfo Abarca
哈哈,但实际上对于不是23 SDK的情况,顶部和底部没有问题,他面临的问题只是针对SDK 23。 - Rodolfo Abarca

0
 <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:right="50dp"
            android:left="50dp"
            android:top="50dp"
            android:bottom="50dp">
            <rotate
                android:fromDegrees="45"
                android:pivotY="50%"
                android:pivotX="50%">
    
                <shape android:shape="rectangle" >
                    <solid android:color="@color/green_700"/>
                    <corners android:radius="5dp"/>
                </shape>
    
            </rotate>
    
        </item>
    
    </layer-list>

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