2015-11-23 33 views
2

我看到菜單圖像文件,提出這樣如何獲得過Android Studio 1.5菜單圖像代碼作爲PNG文件

<vector xmlns:android="http://schemas.android.com/apk/res/android" 
    android:width="24dp" 
    android:height="24dp" 
    android:viewportHeight="24.0" 
    android:viewportWidth="24.0"> 
    <path 
     android:fillColor="#FF000000" 
     android:pathData="M12,12m-3.2,0a3.2,3.2 0,1 1,6.4 0a3.2,3.2 0,1 1,-6.4 0" /> 
    <path 
     android:fillColor="#FF000000" 
     android:pathData="M9,2L7.17,4H4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2V6c0,-1.1 -0.9,-2 -2,-2h-3.17L15,2H9zm3,15c-2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5 -2.24,5 -5,5z" /> 
</vector> 

enter image description here

我想知道是否有轉換PNG file任何工具到

android:pathData="M9,2L7.17,4H4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2V6c0,-1.1 -0.9,-2 -2,-2h-3.17L15,2H9zm3,15c-2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5 -2.24,5 -5,5z" /> 

和反之亦然。

回答

2

這個問題基本上是問是否可以將光柵圖像(PNG)轉換爲矢量圖形(VectorDrawable)。有很多工具可以做到這一點,但它們都有侷限性。

首先,您應該將PNG轉換爲SVG。過去我使用過ImageMagic,結果很好。有關更多選項和信息,看到這兩個StackOverflow的帖子:

ImageMagick png to svg Image Size

How to convert a PNG image to a SVG?

後您的PNG轉換爲SVG,然後你可以使用Android SVG to VectorDrawable


如果你想轉換一個Android VectorDrawable爲PNG,則需要先繪製轉換爲SVG。我寫了一個簡單的命令行工具(vector2svg)來執行此操作。擁有SVG後,有很多工具可以將SVG轉換爲PNG(就像Google一樣)。

編輯:您還可以在VectorDrawable使用以下方法保存爲Android設備上PNG:

public static void vectorDrawableToPng(Context context, int drawableId, File file) 
     throws IOException { 
    final Drawable vectorDrawable = context.getResources().getDrawable(drawableId); 
    // Convert the VectorDrawable to a Bitmap 
    final Bitmap bitmap = Bitmap.createBitmap(vectorDrawable.getIntrinsicWidth(), 
      vectorDrawable.getIntrinsicHeight(), Config.ARGB_8888); 
    final Canvas canvas = new Canvas(bitmap); 
    vectorDrawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); 
    vectorDrawable.draw(canvas); 
    // Save the Bitmap as a PNG. 
    FileOutputStream fos = null; 
    try { 
     fos = new FileOutputStream(file, false); 
     bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos); 
     fos.flush(); 
    } finally { 
     if (fos != null) { 
      fos.close(); 
     } 
    } 
} 

我不建議PNG轉換爲載體,但上述應回答問題。

1

當我在尋找一種方式來改變菜單圖標,我發現這個網站material.io/icons

在那裏你可以找到很多的圖標還可以下載它們作爲SVG甚至PNG

相關問題