[android] 안드로이드에서 SVG를 사용하는 가장 쉬운 방법?

안드로이드에서 svg를 사용하고 각 해상도마다 다른 해상도를 만들고 파일을 삭제하는 것을 피하기 위해 무수한 라이브러리를 찾았습니다. 앱에 많은 아이콘이나 이미지가 있으면 매우 성가 시게됩니다.

누구나 안드로이드에서 SVG를 사용하기 위해 라이브러리를 사용하는 가장 간단한 프로세스를 단계별로 제공 할 수 있다면 친절 할 수 있습니다. 많은 사람들도 도움이 될 것입니다.

또한 아이콘과 이미지를 생성하기 위해 Android Studio 및 Illustrator를 사용합니다.



답변

먼저 svg간단한 단계를 수행하여 파일 을 가져와야 합니다.

  1. 드로어 블을 마우스 오른쪽 버튼으로 클릭
  2. 새로 클릭
  3. 벡터 자산 선택

컴퓨터에서 이미지를 사용할 수 있으면 로컬 svg파일 을 선택 하십시오. 그런 다음 이미지 경로를 선택하고 이미지 크기를 변경하는 옵션을 원하는 경우 대화 상자의 오른쪽에서도 사용할 수 있습니다. 이런 식으로 svg프로젝트에서 이미지를 가져옵니다.이 이미지를 사용하기 위해 동일한 절차를 따릅니다.

@drawable/yourimagename


답변

업데이트 : 이 오래된 대답을 사용 하지 말고 더 잘 사용하십시오 : https://stackoverflow.com/a/39266840/4031815

몇 시간의 연구 끝에 svg-android 가 사용하기 쉽다는 것을 알았으므로 단계별 지침을 여기에 남겨 둡니다.

  1. https://code.google.com/p/svg-android/downloads/list 에서 lib를 다운로드 하십시오 .
    작성 시점의 최신 버전은 다음과 같습니다.svg-android-1.1.jar

  2. 항아리를 libdir에 넣으십시오 .

  3. * .svg 파일을 res/drawabledir에 저장하십시오 (Illustrator에서는 다른 이름으로 저장을 누르고 svg를 선택하는 것만 큼 쉽습니다).

  4. 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);


답변

Android Studio는 1.4 이상 에서 SVG를 지원합니다

다음은 가져 오는 방법에 대한 비디오입니다 .


답변

apk 크기를 증가시키는 라이브러리를 추가하는 대신 http://inloop.github.io/svg2android/를 사용하여 Svg를 드로어 블로 변환하는 것이 좋습니다 . vectorDrawables.useSupportLibrary = truegradle에 추가하십시오 .


답변

SVG2VectorDrawable 플러그인을 사용해보십시오. 환경 설정-> 플러그인-> 플러그인 찾아보기로 이동하여 SVG2VectorDrawable을 설치하십시오. 새그 파일을 벡터 드로어 블로 변환하는 데 좋습니다. 설치 한 후에는 도움말 (?) 아이콘의 오른쪽에있는 도구 모음 섹션에이 아이콘이 있습니다.


답변

  1. 안드로이드 프로젝트에서 사용하려면 SVG를 XML로 변환해야합니다.

1.1이 사이트 http://inloop.github.io/svg2android/ 에서이 작업을 수행 할 수
있지만 일부 그라디언트와 같은 SVG의 모든 기능을 지원하지는 않습니다.

1.2 안드로이드 스튜디오를 통해 변환 할 수 있지만 API 24 이상 만 지원하는 일부 기능을 사용하면 구형 장치에서 응용 프로그램이 충돌 할 수 있습니다.

vectorDrawables.useSupportLibrary = truegradle 파일에 추가 하고 다음과 같이 사용하십시오.

<android.support.v7.widget.AppCompatImageView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:srcCompat="@drawable/ic_item1" />
  1. 이러한 기능을 지원 하는이 라이브러리 https://github.com/MegatronKing/SVG-Android 를 사용하십시오 . https://github.com/MegatronKing/SVG-Android/blob/master/support_doc.md

이 클래스를 응용 프로그램 클래스에 추가하십시오.

public void onCreate() {
    SVGLoader.load(this)
}

SVG를 다음과 같이 사용하십시오 :

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_android_red"/>


답변

1) 드로어 블 디렉토리를 마우스 오른쪽 버튼으로 클릭하고 새로 만들기로 이동 한 다음 벡터 자산으로 이동 2) 클립 아트에서 로컬로 자산 유형 변경 3) 파일 찾아보기 4) 크기 지정 5) 다음을 클릭 한 다음 완료 사용 가능한 svg가 드로어 블로 생성됩니다 예배 규칙서