2016-03-17 10 views
7

私はAndroidでカスタマイズ可能なアイコンを作ろうとしています。私はベクトル要素を作ったが、今は丸い背景にしたいので、丸い形の中に配置しようとした。このように:<vector>をAndroidの<shape>に入れるにはどうすればよいですか?

<?xml version="1.0" encoding="utf-8"?> 
<!-- drawable/circle_card_icon.xml --> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="oval"> 
    <vector xmlns:android="http://schemas.android.com/apk/res/android" 
     android:height="24dp" 
     android:width="24dp" 
     android:viewportWidth="24" 
     android:viewportHeight="24"> 
     <path android:fillColor="#000" 
      android:pathData="M20,2H4A2,2 0 0,0 2,4V22L6,18H20A2,2 0 0,0 22,16V4A2,2 0 0,0 20,2M6,9H18V11H6M14,14H6V12H14M18,8H6V6H18" /> 
    </vector> 
</shape> 

しかし、これは動作しません、と私は次のことを達成しようとしている:
enter image description here

私は背景を取得しないベクターのみを使用することにより。
(私はベクトルを生成するためにthis websiteを使用)

+0

@Bob Maloogaを、[OK]を'layer-list'内の' vector'も動作しませんので、アイコンをpngとしてエクスポートし、 'layer-list'を作成し、下の' shape'を円とし、上のものを空の '背景と私のpngの右の形ですか? – Edward

+0

私は間違っている可能性があります。同じ理由でベクターが形にならないと思っていました – Edward

+0

@Bob Malooga、https://goo.gl/2hkDDD – Edward

答えて

23

ではなく形状にベクトルを入れて、私はそうのようなレイヤリストDrawableの

何か使用したい:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <!-- drawable/circle_card_icon.xml --> 
     <shape xmlns:android="http://schemas.android.com/apk/res/android" 
      android:shape="oval"> 
      <solid android:color="#8df"/> 
      <size 
       android:width="48dp" 
       android:height="48dp" 
      /> 
     </shape> 
    </item> 
    <item android:drawable="@drawable/your_vector_drawable" /> 
</layer-list> 
+0

pre- Lollipop devices –

+0

この正確なことはやっていますが、サポートライブラリとしてapp:srcCompatを実行するとクラッシュする可能性があります。 –

+0

[回避策](https://stackoverflow.com/a/40250753/2649012)があるようです。 –

関連する問題