অ্যান্ড্রয়েডে এসভিজি ব্যবহারের সহজ উপায়?


165

অ্যান্ড্রয়েডে এসভিজি ব্যবহার করতে এবং প্রতিটি রেজোলিউশনের জন্য বিভিন্ন রেজোলিউশনের হতাশাজনক সৃষ্টি এবং ফাইলগুলি বাদ দেওয়ার জন্য আমি একটি অগণিত গ্রন্থাগার পেয়েছি, যখন অ্যাপটিতে অনেক আইকন বা চিত্র থাকে তবে এটি খুব বিরক্তিকর হয়ে ওঠে।

অ্যান্ড্রয়েডে এসভিজি ব্যবহারের জন্য সহজতম লাইব্রেরি ব্যবহারের ধাপে ধাপে প্রক্রিয়া দেওয়ার জন্য যে কেউ দয়াবান হতে পারেন, আমি নিশ্চিত যে এটি আরও অনেককে সহায়তা করবে।

এছাড়াও আমি আমার আইকন এবং চিত্র তৈরির জন্য অ্যান্ড্রয়েড স্টুডিও এবং ইলাস্ট্রেটর ব্যবহার করি।



অ্যান্ড্রয়েড স্টুডিওতে এসভিজি কীভাবে আমদানি করা যায় তার সংক্ষিপ্ত ভিডিও: youtube.com/watch?v=8e3I-PYJNHg
জোহাব আলি

উত্তর:


336

প্রথমে আপনাকে svgসাধারণ পদক্ষেপগুলি অনুসরণ করে ফাইলগুলি আমদানি করতে হবে ।

  1. অঙ্কনযোগ্য উপর ডান ক্লিক করুন
  2. নতুন ক্লিক করুন
  3. ভেক্টর সম্পদ নির্বাচন করুন

যদি আপনার কম্পিউটারে চিত্র উপলব্ধ থাকে তবে স্থানীয় svgফাইল নির্বাচন করুন। এর পরে চিত্রের পথটি নির্বাচন করুন এবং আপনি চাইলে ডায়ালগের ডানদিকে চিত্রের আকার পরিবর্তন করার জন্য একটি বিকল্পও উপলব্ধ। এইভাবে svgআপনার প্রকল্পে চিত্র আমদানি করা হয় এর পরে এই চিত্রটি ব্যবহারের জন্য একই পদ্ধতি ব্যবহার করুন

@drawable/yourimagename

5
আপনি প্রকল্পে বাহ্যিক এসভিজি ফাইলগুলি আমদানি করার সময় মাথা ব্যথা ছাড়াই সংক্ষিপ্ত এবং দরকারী উত্তর।
কোডটোলাইফ

2
ঠিক কি আমি :) খুঁজছেন ছিল
মোহাম্মদ Nageh

5
Nextবোতাম সবসময় নিষ্ক্রিয় করা হয়েছে। কোন ধারণা কেন?
मृড

সুতরাং, আমরা কীভাবে এসভিজির রঙ পরিবর্তন করব?
ওনিয়া ড্যানিয়েল

একটি যাদুমন্ত্র মত কাজ করে. নিস!
Sud007

19

আপডেট: এই পুরানো উত্তরটি ব্যবহার করবেন না , এটি আরও ভাল ব্যবহার করুন: https://stackoverflow.com/a/39266840/4031815

ঠিক আছে কয়েক ঘন্টা গবেষণার পরে আমি দেখতে পেয়েছিলাম এসভিজি-অ্যান্ড্রয়েড ব্যবহার করা বেশ সহজ, তাই আমি এখানে ধাপে ধাপে নির্দেশ ছাড়ছি:

  1. লিব ডাউনলোড করুন: https://code.google.com/p/svg-android/downloads/list এটি লেখার মুহুর্তের সর্বশেষ সংস্করণটি হ'ল:svg-android-1.1.jar

  2. জিরে রাখি libদির।

  3. আপনার * .svg ফাইলটি res/drawableডিয়ারে সংরক্ষণ করুন (চিত্রক্রে সেভ হিসাবে টিপুন যতটা সহজ এবং এসভিজি নির্বাচন করুন)

  4. এসভিজি লাইব্রেরি ব্যবহার করে আপনার ক্রিয়াকলাপে নিম্নলিখিত কোডগুলি কোড করুন:

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

3
আপনার নিজের উত্তরটি আগের উত্তরটির পরিবর্তে গ্রহণযোগ্য হিসাবে চিহ্নিত করা উচিত
ক্লিফ বার্টন

1
আমি যখন এসভিজি ফাইল যুক্ত করার চেষ্টা করি তখন আমি ত্রুটি বলছিলাম, ত্রুটি: ফাইলটির নামটি অবশ্যই .xML বা .png দিয়ে শেষ হতে হবে
সুজয় ইউএন

1
কেন imageView static? আমি এখানে একটি হাগ লাল বাগ পতাকা দেখতে পাচ্ছি। SvgImage rainSVG = new SvgImage(MainActivity.this, R.id.rainImageView, R.drawable.rain); SvgImage thunderSVG = new SvgImage(MainActivity.this, R.id.thunderImageView, R.drawable.thunder); রেইনএসভিজি-তে রেফারেন্সটি বজ্রধ্বনিযুক্ত
চিত্রটি

@ ডিএসসিমিট এটি চিত্র দর্শনের একমাত্র পয়েন্টার। এটি যদি আমার কোড হয় তবে আমি লোডএসভিজি নামে একটি পদ্ধতিতে পুরো ক্লাসটিকে স্ট্যাটিক করব। এবং আপনি দেখতে পাচ্ছেন যে ব্যক্তিগত ভেরিয়েবলগুলিতে ডেটা লোড করার কোনও বিন্দু নেই যা অ্যাক্সেস করা যায় না।
নাসারেডাইন গ্যালফাউট

14

অ্যান্ড্রয়েড স্টুডিওগুলি 1.4 থেকে এসভিজিকে সমর্থন করে

কীভাবে আমদানি করা যায় তার একটি ভিডিও এখানে ।


এটি সেরা উত্তর। অ্যান্ড্রয়েড স্টুডিও এটিকে সহজ করে তোলে!
ডাস্টিনআর

5

আপনার এপিকে আকার বাড়ায় এমন লাইব্রেরি যুক্ত করার পরিবর্তে, আমি আপনাকে http://inloop.github.io/svg2android/ ব্যবহার করে Svg কে অঙ্কনযোগ্য রূপান্তর করতে পরামর্শ দেব । এবং vectorDrawables.useSupportLibrary = trueগ্রেড যোগ করুন ,


3

SVG2VectorDrawable প্লাগইন চেষ্টা করুন। অগ্রাধিকার-> প্লাগইন-> প্লাগইনগুলি ব্রাউজ করুন এবং এসভিজি 2 ভেক্টরড্র্যাবেল ইনস্টল করুন। স্যাগ ফাইলগুলিকে ভেক্টর ড্রয়িংয়ে রূপান্তর করার জন্য দুর্দান্ত। একবার ইনস্টল হয়ে গেলে আপনি সাহায্যের আইকন (?) এর ডানদিকে টুলবার বিভাগে এর জন্য একটি আইকন পাবেন find


আমার পক্ষে কাজ করে না - এসভিজি ফাইল পাথ এমনকি প্লাগইনে আপলোড হয় না। উপরের সেরা উত্তরটি অনেক সহজ এবং কাজটি সম্পন্ন করে।
ডেভনটড্যাভিড

দুর্দান্ত প্লাগইন - অনেকগুলি এসজিগিকে দ্রুত ভেক্টর ড্রইবেলে রূপান্তরিত করে!
মর্টেন হল্মগার্ড

2
  1. অ্যান্ড্রয়েড প্রকল্পে আপনাকে ব্যবহার করতে SVG কে XML এ রূপান্তর করতে হবে।

1.1 আপনি এই সাইটের সাথে এটি করতে পারেন: http://inloop.github.io/svg2android/ তবে এটি কিছু গ্রেডিয়েন্টের মতো এসভিজির সমস্ত বৈশিষ্ট্য সমর্থন করে না।

১.২ আপনি অ্যান্ড্রয়েড স্টুডিওর মাধ্যমে রূপান্তর করতে পারেন তবে এটি এমন কিছু বৈশিষ্ট্য ব্যবহার করতে পারে যা কেবলমাত্র API 24 এবং আরও বেশি সমর্থন করে যা পুরানো ডিভাইসে আপনার অ্যাপটিকে ক্র্যাশ করে।

এবং vectorDrawables.useSupportLibrary = trueগ্রেড ফাইল যুক্ত করুন এবং এটি ব্যবহার করুন:

<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)
}

এবং এসভিজি এটি ব্যবহার করুন:

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

আপনার যখন @ পল্লভীর সরাসরি এগিয়ে যাওয়ার কৌশল রয়েছে তখন কেন একটি এসভিজি লোডার ব্যবহার করবেন? কোনও লোডার ব্যবহারের কোনও সুবিধা আছে কি?
তাসলিম ওসেনি

@ সমর্থিত বৈশিষ্ট্যগুলি সাধারণ উপায়ের চেয়ে বেশি জনপ্রিয়। আপনি সমর্থিত বৈশিষ্ট্যগুলি দেখতে এবং দেখতে পারেন।
সাজাদ আব্বাসি

0

1) অঙ্কনযোগ্য ডিরেক্টরিতে ডান ক্লিক করুন তারপরে নতুন যান এবং ভেক্টর সম্পদে যান 2) ক্লিপ আর্ট থেকে স্থানীয়তে সম্পদের ধরণ পরিবর্তন করুন 3) আপনার ফাইল ব্রাউজ করুন 4) আকার দিন 5) তারপরে ক্লিক করুন তারপরে আপনার ব্যবহারযোগ্য এসভিজি অঙ্কনযোগ্যতে তৈরি হবে ডিরেক্টরি

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.