Подтвердить что ты не робот

Самый простой способ использовать svg в android?

Я нашел множество библиотек для использования svg в Android и избегаю разочарования в создании разных разрешений и удалении файлов для каждого разрешения, это становится очень неприятным, когда в приложении много значков или изображений.

Может ли кто-либо быть таким добрым, чтобы дать пошаговый процесс самой простой в использовании библиотеки для использования SVG в Android, я уверен, что это поможет многим другим.

Также я использую Android Studio и Illustrator для создания моих значков и изображений.

4b9b3361

Ответ 1

ОБНОВЛЕНИЕ. Пожалуйста, обратите внимание, что этот ответ - с 2015 года, и в настоящее время в Android могут быть более эффективные и простые способы использования svg. Поэтому возьмите этот ответ с солью.

После нескольких часов исследований я обнаружил, что svg-android достаточно прост в использовании, поэтому я оставляю здесь пошаговые инструкции:

  • скачать lib из: https://code.google.com/p/svg-android/downloads/list Последняя версия на момент написания: svg-android-1.1.jar

  • Поместите банку в директорию lib.

  • Сохраните файл *.svg в res/drawable dir (В иллюстраторе так же просто, как нажать "Сохранить как" и выбрать svg)

  • Введите следующую информацию в своей деятельности, используя библиотеку svg:

    ImageView imageView = (ImageView) findViewById(R.id.imgView);
    SVG svg = SVGParser.getSVGFromResource(getResources(), R.drawable.example);
    //The following is needed because of image accelaration in some devices such as samsung
    imageView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
    imageView.setImageDrawable(svg.createPictureDrawable());
    



Вы можете уменьшить код шаблона следующим образом

Очень просто я сделал простой класс, чтобы содержать прошлый код и уменьшать шаблонный код, например:

import android.app.Activity;
import android.view.View;
import android.widget.ImageView;

import com.larvalabs.svgandroid.SVG;
import com.larvalabs.svgandroid.SVGParser;

public class SvgImage {

    private static ImageView imageView;
    private Activity activity;
    private SVG svg;
    private int xmlLayoutId;
    private int drawableId;


    public SvgImage(Activity activity, int layoutId, int drawableId) {
        imageView = (ImageView) activity.findViewById(layoutId);
        svg = SVGParser.getSVGFromResource(activity.getResources(), drawableId);
        //Needed because of image accelaration in some devices such as samsung
        imageView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
        imageView.setImageDrawable(svg.createPictureDrawable());
    }
}

Теперь я могу назвать это так:

    SvgImage rainSVG = new SvgImage(MainActivity.this, R.id.rainImageView, R.drawable.rain);
    SvgImage thunderSVG = new SvgImage(MainActivity.this, R.id.thunderImageView, R.drawable.thunder);
    SvgImage oceanSVG = new SvgImage(MainActivity.this, R.id.oceanImageView, R.drawable.ocean);
    SvgImage fireSVG = new SvgImage(MainActivity.this, R.id.fireImageView, R.drawable.fire);
    SvgImage windSVG = new SvgImage(MainActivity.this, R.id.windImageView,R.drawable.wind);
    SvgImage universeSVG = new SvgImage(MainActivity.this, R.id.universeImageView,R.drawable.universe);

Ответ 2

Сначала вам нужно импортировать файлы svg, выполнив следующие простые шаги.

  • Щелкните правой кнопкой мыши по адресу
  • Нажмите новый
  • Выбрать векторный ресурс

Если изображение доступно на вашем компьютере затем выберите локальный файл svg. После этого выберите путь изображения и возможность изменить размер изображения также доступна в правой части диалогового окна, если вы хотите. таким образом svg изображение импортируется в ваш проект После этого для использования этого изображения используйте ту же процедуру

@drawable/yourimagename

Ответ 4

Попробуйте SVG2VectorDrawable Plugin. Перейдите в раздел Настройки- > Плагины- > Обзор плагинов и установите SVG2VectorDrawable. Отлично подходит для конвертирования sag файлов в вектор. После установки вы найдете значок для этого в разделе панели инструментов справа от значка справки (?).

Ответ 5

Вместо добавления библиотек, которые увеличивают ваш размер apk, я предлагаю вам конвертировать Svg в drawable, используя http://inloop.github.io/svg2android/. и добавьте vectorDrawables.useSupportLibrary = true в gradle,