2016-12-29 2 views
-1


Я сделал значок запуска Launcher Android в качестве вектора, но я узнал, что вместо векторного (XML) я должен использовать PNG. Как преобразовать векторное изображение в PNG для значка запуска.Конвертировать Android-вектор, пригодный для запуска Launcher icon PNG

Это вектор, если это какой-либо помощи:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:width="100dp" 
    android:height="100dp"> 
    <item> 
     <shape xmlns:android="http://schemas.android.com/apk/res/android" 
       android:shape="oval"> 
      <solid 
       android:color="#5FB0C9"/> 
      <size 
       android:width="100dp" 
       android:height="100dp"/> 
      <stroke 
       android:width="5dip" 
       android:color="#3DA8C9"/> 
     </shape> 
    </item> 
    <item 
     android:gravity="center"> 
     <vector 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:width="60dp" 
      android:height="60dp" 
      android:viewportHeight="100.0" 
      android:viewportWidth="100.0"> 
      <path 
       android:fillColor="#2c819b" 
       android:pathData="M72.4,3.5c-2,0 -3.9,0 -5.9,0c-4.5,0 -7,3.4 -7.5,7.5c-0.9,7.3 -1.8,14.6 -2.7,21.9c2.5,-2.5 5,-5 7.5,-7.5c-7.8,-0.2 -15.6,-0.3 -23.3,-0.5c2.5,2.5 5,5 7.5,7.5c0.9,-7.1 1.8,-14.3 2.7,-21.4c0.5,-4.1 -3.8,-7.5 -7.5,-7.5c-2,0 -3.9,0 -5.8,0c-4.5,0 -7,3.4 -7.5,7.5c-0.9,7.1 -1.8,14.2 -2.7,21.3c2.5,-2.5 5,-5 7.5,-7.5c-7.1,-0.2 -14.3,-0.3 -21.4,-0.5c-3,-0.1 -6.8,2.3 -7.2,5.5c-0.3,1.9 -0.6,3.9 -0.8,5.8c-0.7,4.8 1.9,9.4 7.2,9.5c7.2,0.2 14.4,0.3 21.5,0.5c-2.5,-2.5 -5,-5 -7.5,-7.5c-1,7.7 -1.9,15.4 -2.9,23.2c2.5,-2.5 5,-5 7.5,-7.5c-7.3,-0.2 -14.7,-0.3 -22,-0.5c-3,-0.1 -6.8,2.3 -7.2,5.5c-0.3,1.9 -0.6,3.9 -0.8,5.8c-0.7,4.8 1.9,9.4 7.2,9.5c7.4,0.2 14.8,0.3 22.2,0.5c-2.5,-2.5 -5,-5 -7.5,-7.5c-0.9,7.3 -1.8,14.7 -2.8,22c-0.5,4.1 3.8,7.5 7.5,7.5c1.9,0 3.9,0 5.8,0c4.5,0 7,-3.4 7.5,-7.5c0.9,-7.3 1.8,-14.6 2.7,-21.9c-2.5,2.5 -5,5 -7.5,7.5c7.8,0.2 15.6,0.3 23.3,0.5c-2.5,-2.5 -5,-5 -7.5,-7.5c-0.9,7.1 -1.8,14.3 -2.7,21.4c-0.5,4.1 3.8,7.5 7.5,7.5c2,0 3.9,0 5.8,0c4.5,0 7,-3.4 7.5,-7.5c0.9,-7.1 1.8,-14.2 2.7,-21.3c-2.5,2.5 -5,5 -7.5,7.5c7.1,0.2 14.3,0.3 21.4,0.5c3,0.1 6.8,-2.3 7.2,-5.5c0.3,-1.9 0.6,-3.9 0.8,-5.8c0.7,-4.8 -1.9,-9.4 -7.2,-9.5c-7.2,-0.2 -14.4,-0.3 -21.5,-0.5c2.5,2.5 5,5 7.5,7.5c1,-7.7 1.9,-15.4 2.9,-23.2c-2.5,2.5 -5,5 -7.5,7.5c7.3,0.2 14.7,0.3 22,0.5c3,0.1 6.8,-2.3 7.2,-5.5c0.3,-1.9 0.6,-3.9 0.8,-5.8c0.7,-4.8 -1.9,-9.4 -7.2,-9.5c-7.4,-0.2 -14.8,-0.3 -22.2,-0.5c2.5,2.5 5,5 7.5,7.5c0.9,-7.3 1.8,-14.7 2.8,-22C80.4,6.9 76.1,3.5 72.4,3.5c-4.5,0 -7,3.4 -7.5,7.5c-0.9,7.3 -1.8,14.7 -2.8,22c-0.5,4.1 3.8,7.4 7.5,7.5c7.4,0.2 14.8,0.3 22.2,0.5c-2.4,-3.2 -4.8,-6.3 -7.2,-9.5c-0.3,1.9 -0.6,3.9 -0.8,5.8c2.4,-1.8 4.8,-3.7 7.2,-5.5c-7.3,-0.2 -14.7,-0.3 -22,-0.5c-4.5,-0.1 -7,3.5 -7.5,7.5c-1,7.7 -1.9,15.4 -2.9,23.2c-0.5,4.1 3.8,7.4 7.5,7.5c7.2,0.2 14.4,0.3 21.5,0.5c-2.4,-3.2 -4.8,-6.3 -7.2,-9.5c-0.3,1.9 -0.6,3.9 -0.8,5.8c2.4,-1.8 4.8,-3.7 7.2,-5.5c-7.1,-0.2 -14.3,-0.3 -21.4,-0.5c-4.5,-0.1 -7,3.5 -7.5,7.5c-0.9,7.1 -1.8,14.2 -2.7,21.3c2.5,-2.5 5,-5 7.5,-7.5c-2,0 -3.9,0 -5.8,0c2.5,2.5 5,5 7.5,7.5c0.9,-7.1 1.8,-14.3 2.7,-21.4c0.5,-4.1 -3.8,-7.4 -7.5,-7.5c-7.8,-0.2 -15.6,-0.3 -23.3,-0.5c-4.5,-0.1 -7,3.5 -7.5,7.5c-0.9,7.3 -1.8,14.6 -2.7,21.9c2.5,-2.5 5,-5 7.5,-7.5c-1.9,0 -3.9,0 -5.8,0c2.5,2.5 5,5 7.5,7.5c0.9,-7.3 1.8,-14.7 2.8,-22c0.5,-4.1 -3.8,-7.4 -7.5,-7.5c-7.4,-0.2 -14.8,-0.3 -22.2,-0.5c2.4,3.2 4.8,6.3 7.2,9.5c0.3,-1.9 0.6,-3.9 0.8,-5.8c-2.4,1.8 -4.8,3.7 -7.2,5.5c7.3,0.2 14.7,0.3 22,0.5c4.5,0.1 7,-3.5 7.5,-7.5c1,-7.7 1.9,-15.4 2.9,-23.2c0.5,-4.1 -3.8,-7.4 -7.5,-7.5c-7.2,-0.2 -14.4,-0.3 -21.5,-0.5c2.4,3.2 4.8,6.3 7.2,9.5c0.3,-1.9 0.6,-3.9 0.8,-5.8c-2.4,1.8 -4.8,3.7 -7.2,5.5c7.1,0.2 14.3,0.3 21.4,0.5c4.5,0.1 7,-3.5 7.5,-7.5c0.9,-7.1 1.8,-14.2 2.7,-21.3c-2.5,2.5 -5,5 -7.5,7.5c2,0 3.9,0 5.8,0c-2.5,-2.5 -5,-5 -7.5,-7.5c-0.9,7.1 -1.8,14.3 -2.7,21.4c-0.5,4.1 3.8,7.4 7.5,7.5c7.8,0.2 15.6,0.3 23.3,0.5c4.5,0.1 7,-3.5 7.5,-7.5c0.9,-7.3 1.8,-14.6 2.7,-21.9c-2.5,2.5 -5,5 -7.5,7.5c2,0 3.9,0 5.9,0C82.1,18.5 82.1,3.5 72.4,3.5z"/> 
      <path 
       android:fillColor="#2c819b" 
       android:pathData="M60.2,54.3c-7.8,-0.2 -15.6,-0.3 -23.3,-0.5c2.5,2.5 5,5 7.5,7.5c1,-7.7 1.9,-15.4 2.9,-23.2c-2.5,2.5 -5,5 -7.5,7.5c7.8,0.2 15.6,0.3 23.3,0.5c-2.5,-2.5 -5,-5 -7.5,-7.5c-1,7.7 -1.9,15.4 -2.9,23.2c-0.5,4.1 3.8,7.5 7.5,7.5c4.5,0 7,-3.4 7.5,-7.5c1,-7.7 1.9,-15.4 2.9,-23.2c0.5,-4.1 -3.8,-7.4 -7.5,-7.5c-7.8,-0.2 -15.6,-0.3 -23.3,-0.5c-4.5,-0.1 -7,3.5 -7.5,7.5c-1,7.7 -1.9,15.4 -2.9,23.2c-0.5,4.1 3.8,7.4 7.5,7.5c7.8,0.2 15.6,0.3 23.3,0.5C69.9,69.5 69.9,54.5 60.2,54.3z"/> 
     </vector> 
    </item> 
</layer-list> 
+0

Я думаю, что это поможет вам HTTPS : //android-developers.googleblog.com/2015/09/android-studio-14.html и https://developer.android.com/studio/write/vector-asset-studio.html –

ответ

0

Все, что вам нужно сделать, это:

  1. Отрендерьте вектор в ImageView
  2. Получить Картинку из ImageView
  3. Сохранение растрового изображения в PNG-файле

визуализации вектора в ImageView:

//-------------------------------------------------------------------------------- 
    ImageView image = R.findViewById(R.id.imageView);//get ImageView 
//-------------------------------------------------------------------------------- 

получить Картинку из ImageView:

//-------------------------------------------------------------------------------- 
    Bitmap bitmap = ((BitmapDrawable)image.getDrawable()).getBitmap();//get Bitmap 
    SaveImage(bitmap,"my_png_file");//save it 
//-------------------------------------------------------------------------------- 

Сохранить растровое изображение в файл PNG:

//-------------------------------------------------------------------------------- 
    private void SaveImage(Bitmap finalBitmap, String filename) 
    { 
      String root = Environment.getExternalStorageDirectory().toString(); 
      File myDir = new File(root + "/saved_images"); 
      myDir.mkdirs(); 
      Random generator = new Random(); 
      int n = 10000; 
      n = generator.nextInt(n); 

      String fname = filename +".png"; 
      File file = new File (myDir, fname); 
      if (file.exists()) file.delete(); 
      try { 
       FileOutputStream out = new FileOutputStream(file); 
       finalBitmap.compress(Bitmap.CompressFormat.PNG, 100, out); 
       out.flush(); 
       out.close(); 
       sendBroadcast(new Intent(
        Intent.ACTION_MEDIA_MOUNTED, 
        Uri.parse("file://" + Environment.getExternalStorageDirectory()))); 

      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
    }//SaveImage 
    //-------------------------------------------------------------------------------- 
+0

Спасибо за ваш ответ но я переписал его вручную в svg, а затем использовали некоторые веб-сайты для создания png. Надеюсь, я не допущу такой же ошибки. Знаете ли вы, есть ли способ сделать этот конвертер на рабочем столе, так что это удобнее? – TheKarlo95

+0

Должно быть много, вот один https://github.com/filamentgroup/svg-to-png –

Смежные вопросы