গ্লাইড -৯.০. হারিয়ে যাওয়া স্থানধারক, ত্রুটি, গ্লাইড অ্যাপ এবং এর পদ্ধতি স্থানধারক, ত্রুটি সমাধান করে না resolve


87

আমি একটি চিত্র ডাউনলোড করতে এবং প্রদর্শন করতে গ্লাইড অ্যান্ড্রয়েড লাইব্রেরিটি ব্যবহার করতে চাই ImageView

পূর্ববর্তী সংস্করণে আমরা ব্যবহার করেছি:

Glide.with(mContext).load(imgUrl)
                .thumbnail(0.5f)
                .placeholder(R.drawable.PLACEHOLDER_IMAGE_NAME)
                .error(R.drawable.ERROR_IMAGE_NAME)
                .crossFade()
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                .into(imageView);

তবে আমি গ্লাইড ডকুমেন্টেশন দেখেছি:

এটি GlideApp.with()পরিবর্তে ব্যবহার বলেGlide.with()

আমার উদ্বেগ হ'ল একটি অনুপস্থিত স্থানধারক, ত্রুটি, গ্লাইড অ্যাপ এবং অন্যান্য বিকল্প।

আমি ব্যাবহার করছি

 compile 'com.github.bumptech.glide:glide:4.0.0'

আমি কোথায় ভুল করছি? এখানে রেফারেন্স সহ ।

কিভাবে GlideApp.with()ব্যবহার করা হয়েছে?

এপিআই একই প্যাকেজে উত্পন্ন এবং ডিফল্টরূপে AppGlideModuleনামকরণ GlideAppকরা হয়। অ্যাপ্লিকেশনগুলি এর GlideApp.with()পরিবর্তে সমস্ত লোড শুরু করে API ব্যবহার করতে পারে Glide.with():

GlideApp.with(fragment)
   .load(myUrl)
   .placeholder(placeholder)
   .fitCenter()
   .into(imageView);


4
গ্লাইড অ্যাপ সম্পর্কে আপনার কি ধারণা আছে? কীভাবে ব্যবহার করবেন এবং কখন ব্যবহার করবেন? .. না হলে দয়া করে
উড়ান

আপনি নিখোঁজ
পদক্ষেপ

এই ডকুমেন্টেশনটি অনুসরণ করুন bumptech.github.io/glide/doc/getting-st সূত্র html#applicatio…s
রোহান পাওয়ার

উত্তর:


224

রিকোয়েস্টপশনগুলি ব্যবহার করে দেখুন :

RequestOptions requestOptions = new RequestOptions();
requestOptions.placeholder(R.drawable.ic_placeholder);
requestOptions.error(R.drawable.ic_error);

Glide.with(context)
     .setDefaultRequestOptions(requestOptions)
     .load(url).into(holder.imageView);

সম্পাদনা

যদি .setDefaultRequestOptions(requestOptions)কাজ না করে তবে ব্যবহার করুন .apply(requestOptions):

Glide.with(MainActivity.this)
            .load(url)
            .apply(requestOptions)
            .into(imageview);
 // or this
 Glide.with(MainActivity.this)
            .load(url)
            .apply(new RequestOptions().placeholder(R.drawable.booked_circle).error(R.drawable.booked_circle))
            .into(imageview);

 // or this
 Glide.with(MainActivity.this)
            .load(url)
            .apply(RequestOptions.placeholderOf(R.drawable.booked_circle).error(R.drawable.))
            .into(imageview);

সম্পাদনা 2 বোনাস

এখানে গ্লাইড -4 এ অন্য কিছু পরিবর্তন রয়েছে


আমিও জানি না যে রীতেশভভসার আমার ডিভাইসে এটির কাজটি নতুন গ্লাইড লাইব দিয়ে কাজ করছে তা আপনি এটি পরীক্ষা করে দেখতে পারেন
নীলিলেস

@ নীলেশ রথোদ অনুরোধ বিভাগগুলি বিল্ডার স্টাইলে ব্যবহার করা উচিত: RequestOptions requestOptions = new RequestOptions().placeholder(R.drawable.ic_placeholder).requestOptions.error(R.drawable.ic_error);
আলেকজান্ডার উখভ

4
এটি গ্লাইড অ্যাপ ছাড়াই কার্যনির্বাহী। কীভাবে গ্লাইড অ্যাপ যুক্ত করবেন তা শিখতে github.com/bumptech/glide/issues/1945 দেখুন ।
শীতলমাইন্ড

বিটম্যাপ বিটম্যাপের মতো বিটম্যাপ আউটপুট পাওয়ার কোনও উপায় নেই = গ্লাইড আউটপুট
বিপুল চৌহান

31

আপনি যদি গ্লাইড প্যাকেজ নির্ভরতা compile 'com.github.bumptech.glide:glide:3.7.0'ব্যবহার করেন, তবে নীচের কোডটি ব্যবহার করতে হবে:

GlideApp
    .with(your context)
    .load(url)
    .centerCrop()
    .placeholder(R.drawable.loading_image)
    .error(R.drawable.error_image)
    .into(myImageView);

দ্রষ্টব্য: নথিতে যেমন রয়েছে ,

রাউন্ড পিকচারস: সার্কেলআইমেজভিউ / সার্কুলার ইমেজভিউ / রাউন্ডেড আইমেজভিউতে .thumbnail () বা। স্থানধারক ()) এবং অ্যানিমেটেড জিআইএফ সহ ট্রানজিশনড্রেইবল (.ক্রসফ্যাড (), এবং বিটম্যাপট্রান্সফর্মেশন (। সার্কেলক্রপ () v4 এ উপলব্ধ হবে) বা সমস্যাযুক্ত হিসাবে পরিচিত সমস্যা সমাধানের জন্য .dontAnimate ()।

compile com.github.bumptech.glide:glide:4.1.1তারপরে সর্বশেষ আপডেট হওয়া সংস্করণটি নীচের কোডটি ব্যবহার করতে হবে:

RequestOptions options = new RequestOptions()
                    .centerCrop()
                    .placeholder(R.drawable.default_avatar)
                    .error(R.drawable.default_avatar)
                    .diskCacheStrategy(DiskCacheStrategy.ALL)
                    .priority(Priority.HIGH)
                    .dontAnimate()
                    .dontTransform();

Glide.with(this)
     .load(url)
     .apply(options)
     .into(imageView);

গ্লাইড, বাগ ফিক্স এবং বৈশিষ্ট্যগুলির সর্বশেষতম সংস্করণটি দেখুন ।



ইয়া @ আনন্দসভজানি তারা গীতহাবে আপডেট হয়নি তবে আপনি এই লিঙ্কটিতে তাদের আপডেটগুলি পেতে পারেন github.com/bumptech/glide/releases
ND1010_

4
যদি আপনি গ্লাইড পছন্দ না করেন তবে আপনি চিত্র লোড করার নিজস্ব উপায় তৈরি করতে পারেন, জিআইএফ যা
ক্যাচিংয়েরও ব্যবস্থা করে

10

আপনি যদি গ্লাইড অ্যাপ ব্যবহার করতে চান তবে আপনাকে dependenciesস্ক্রিনশটের মতো এনোটেশন প্রসেসরে যুক্ত করতে হবে :

কীভাবে আপনার প্রকল্পে গ্লাইড অ্যাপ যুক্ত করবেন

তারপরে আপনার অ্যাপ্লিকেশনটিতে একটি অ্যাপগ্লাইডমডিউল বাস্তবায়ন অন্তর্ভুক্ত করুন:

@GlideModule
public final class MyAppGlideModule extends AppGlideModule {}

@GlideModuleটীকাটি ভুলে যাবেন না । তারপরে আপনার প্রকল্পটি তৈরি করা দরকার। এবং GlideAppস্বয়ংক্রিয়ভাবে উত্পন্ন করা হবে।


4
এটি সিঙ্ক গ্রেডেলের পরে কাজ করছে না। তবে এটি কাজ করতে আমাদের পুনর্নির্মাণ করা দরকার।
রবি যাদব

6

নির্ভরতা:

compile 'com.github.bumptech.glide:glide:4.1.1'
annotationProcessor 'com.github.bumptech.glide:compiler:4.1.1'

যথাযথভাবে টিকাশিত অ্যাপগ্লাইডমডিউল বাস্তবায়ন যুক্ত করুন:

import com.bumptech.glide.annotation.GlideModule;
import com.bumptech.glide.module.AppGlideModule;

@GlideModule
public final class MyAppGlideModule extends AppGlideModule{}

এছাড়াও, আপনি যদি নিম্নলিখিত অনুরূপ ত্রুটিগুলি এড়ানোর জন্য জ্যাক বিকল্পটি ব্যবহার করেন তবে আপনার অ্যান্ড্রয়েড স্টুডিও 3.0.০.০ পূর্বরূপ ব্যবহার করা দরকার।

ত্রুটি: কার্য ': অ্যাপ্লিকেশন: ট্রান্সফর্মজ্যাক উইথজ্যাকফোর্ডডিবগ' এর জন্য কার্যকর করা ব্যর্থ। com.android.jack.ir.JNodeInternError: java.lang.Exception: java.lang.SsertionError: এখনও কার্যকর হয়নি


6

আমাদেরও অনুরোধ অপশন ব্যবহার করার দরকার নেই।

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

গ্লাইড ব্যবহার :

উত্পন্ন এপিআই ব্যতীত একটি অনুরোধটি এর মতো হতে পারে:

Glide.with(fragment)
    .load(url)
    .apply(centerCropTransform()
        .placeholder(R.drawable.placeholder)
        .error(R.drawable.error)
        .priority(Priority.HIGH))
    .into(imageView);

গ্লাইড অ্যাপ ব্যবহার করে : -

উত্পন্ন API এর সাথে, RequestOptionsকলগুলি ইনলাইন করা যেতে পারে:

GlideApp.with(fragment)
    .load(url)
    .centerCrop()
    .placeholder(R.drawable.placeholder)
    .error(R.drawable.error)
    .priority(Priority.HIGH)
    .into(imageView);

আপনি একইভাবে একাধিক লোডে একই বিকল্পের প্রয়োগ করতে উত্পন্ন অনুরোধকোষগুলি সাবক্লাস ব্যবহার করতে পারেন, তবে উত্পন্ন অনুরোধবিল্ডার সাবক্লাস বেশিরভাগ ক্ষেত্রেই বেশি সুবিধাজনক হতে পারে।



2

আপনি যদি আপনার অ্যাপ্লিকেশানের সর্বত্র একটি সাধারণ স্থানধারক ব্যবহার করতে চান তবে আপনি এটি এইভাবে করতে পারেন:

যেহেতু আমরা গ্লাইড ভি 4 থেকে গ্লাইডমডুল তৈরি করছি , আপনি আপনার প্রকল্পে এই শ্রেণিকে অনুলিপি / পেস্ট করতে পারেন যাতে আপনি গ্লাইড অ্যাপ ক্লাসটি ব্যবহার করতে সক্ষম হবেন (আরও পদক্ষেপের জন্য - এটি অনুসরণ করুন) :

@GlideModule
public class SampleGlideModule extends AppGlideModule {
    @Override
    public void applyOptions(@NonNull Context context, @NonNull GlideBuilder builder) {
        super.applyOptions(context, builder);
        builder.setDefaultRequestOptions(new RequestOptions().placeholder(R.drawable.logo).error(R.drawable.logo));
    }

    @Override
    public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) {
        super.registerComponents(context, glide, registry);
    }
}

আপনি ডিফল্ট হিসাবে সেট করতে সমস্ত অনুরোধ বিকল্প দিতে পারেন

এই শ্রেণিটি তৈরি করে আপনার .placeholderসাথে ব্যবহার করার দরকার নেই GlideApp, এটি স্বয়ংক্রিয়ভাবে প্রয়োগ করা হবে।


1
RequestOptions options = new RequestOptions()
            .placeholder(R.drawable.null_image_profile)
            .error(R.drawable.null_image_profile);
    //.centerCrop()
    //.diskCacheStrategy(DiskCacheStrategy.ALL)
    //.priority(Priority.HIGH);

    Glide.with(context).load(imageUrl)
            .apply(options)
            .into(profileImage);

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