2017-04-26 34 views
-2

嗨大家请建议我如何创建android xml drawable像下面的图像?为Android视图钻石形状xml背景

enter image description here

现在我使用以下代码

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <rotate 
      android:fromDegrees="45" 
      android:pivotX="-40%" 
      android:pivotY="87%" 
      android:toDegrees="45"> 
      <shape android:shape="rectangle"> 
       <stroke 
        android:width="10dp" 
        android:color="@color/colorAccent" /> 
       <solid android:color="@color/colorAccent" /> 
      </shape> 
     </rotate> 
    </item> 
</layer-list> 

但其结果是三角形,但我需要上述形状。

+1

你为此尝试了什么。添加你的代码。 –

+0

最简单的方法是在ImageButton和display上使用.png。 – Hasnain

+0

感谢您的支持@all – user3068659

回答

3

检查这一点,

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<item 
    android:left="43dp" 
    android:top="43dp" 
    android:right="43dp" 
    android:bottom="43dp"> 
    <rotate android:fromDegrees="45"> 
     <shape> 
      <size 
       android:width="200dp" 
       android:height="200dp" /> 
      <gradient 
       android:startColor="#0fdcc9" 
       android:endColor="#0fdcc9" /> 
      <stroke 
       android:width="5dp" 
       android:color="#2DACA0" /> 
     </shape> 
    </rotate> 
</item> 

+0

完美答案。只需使用'#66BF9E'值和'#318264'值改变'startColor'和'endColor'的值。 –

+0

这是我使用的解决方案,但您不需要; 会做。 – greeble31

+0

@ greeble31''标签可用于单一纯色,如果我们想要使用多个标签,我们可以使用''。在这种情况下,我们可以使用''而不是这两个都可以。 – Archana

0

我固定在本教程 here

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:bottom="43dp" 
     android:left="43dp" 
     android:right="43dp" 
     android:state_pressed="true" 
     android:top="43dp"> 
     <rotate android:fromDegrees="45"> 
      <shape> 
       <size 
        android:width="200dp" 
        android:height="200dp" /> 
       <gradient 
        android:endColor="@color/colorPrimaryDark" 
        android:startColor="@color/colorPrimaryDark" /> 

       <stroke 
        android:width="5dp" 
        android:color="@color/colorPrimary" /> 
       <corners android:radius="7dp" /> 
       <padding 
        android:bottom="10dp" 
        android:left="10dp" 
        android:right="10dp" 
        android:top="10dp" /> 
      </shape> 
     </rotate> 
    </item> 
</layer-list> 
0

这是我的钻石形状绘制文件ic_diamond.xml文件。

<?xml version="1.0" encoding="utf-8"?> 
<vector xmlns:android="http://schemas.android.com/apk/res/android" 
android:width="372.7dp" 
android:height="367.4dp" 
android:viewportWidth="372.7" 
android:viewportHeight="367.4"> 

<path 
    android:fillColor="#50AE89" 
    android:strokeColor="#266D4F" 
    android:strokeWidth="5" 
    android:strokeMiterLimit="10" 
    android:pathData="M188.706,51.8702 L318.105,181.269 L183.968,315.406 L54.5691,186.007 
        L188.706,51.8702 Z" /> 
</vector> 

我包括这在简单视图:

<View 
    android:layout_width="100dp" 
    android:layout_height="40dp" 
    android:layout_centerInParent="true" 
    android:background="@drawable/ic_diamond" 
    /> 

在这里,是结果:

enter image description here

+0

你能分享我如何生成此向量图吗?我尝试使用Android工作室,但仍然面临问题 – user3068659

+0

我只是创建SVG并将其转换为矢量。 :D –

-1

这里是它创建了一个200dp正方形并旋转它45的可绘制资源°形成钻石形状:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:bottom="50dp" 
     android:left="50dp" 
     android:right="50dp" 
     android:top="50dp"> 
     <rotate android:fromDegrees="45"> 
      <shape> 
       <size 
        android:width="200dp" 
        android:height="200dp"/> 
       <stroke 
        android:width="10dp" 
        android:color="#358165"/> 
       <solid android:color="#69BE9E"/> 
      </shape> 
     </rotate> 
    </item> 
</layer-list> 
+1

尽管此代码可能会回答问题,但提供有关如何解决问题和/或为何解决问题的其他上下文可以提高答案的长期价值。 – Badacadabra