दिलचस्प पोस्ट
पता लगाएँ कि ब्राउज़र Android या iOS डिवाइस पर चल रहा है या नहीं दो बिंदुओं के बीच कर्नेल घनत्व की साजिश को छिपाना सूची <टी> या आईआईएलआईटी <टी> संरचना का उपयोग कब करना है? मैं MySQL में एक सरणी चर कैसे अनुकरण कर सकता हूँ? मैं Facebook API के माध्यम से एक से अधिक फ़ोटो कैसे पोस्ट कर सकता हूं कर्ल और पिंग – कैसे एक वेबसाइट या तो ऊपर या नीचे है की जांच करने के लिए? मैं एक सिस्टम डिवाइस को प्रोग्रामैटिक रूप से अक्षम कैसे कर सकता हूं? NSDateComponents वाक्यविन्यास में अंतर? रेल: क्लाइंट आईपी पता प्राप्त करें मैं एएसपी.नेट में पेज कैसे रिफ्रेश करूं? (इसे कोड से स्वयं पुनः लोड करने दें) टूटी पाइप त्रुटि का कारण क्या है? आईपैड सफारी – कीबोर्ड को गायब बनाओ एंड्रॉइड या आईओएस के आधार पर जेक्जरी-यूआई छांटने योग्य डिवाइस पर काम नहीं करता है ब्लूटूथ डिवाइस को प्रोग्रामेटिक एंड्रॉइड से कैसे जोड़ा जाए

किसी छवि को बिटमैप में डाउनलोड करने के लिए कोई कैसे उपयोग करता है?

एक ImageView में एक यूआरएल को डाउनलोड करना ग्लाइड का उपयोग करना बहुत आसान है:

  Glide .with(context) .load(getIntent().getData()) .placeholder(R.drawable.ic_loading) .centerCrop() .into(imageView); 

मैं सोच रहा हूं कि मैं एक Bitmap में भी डाउनलोड कर सकता हूं? मैं एक कच्चे बिटमैप में डाउनलोड करना चाहता हूं, जिसे मैं फिर से अन्य टूल का उपयोग करके हेरफेर कर सकता हूं। मैं कोड के माध्यम से रहा हूँ और यह कैसे करना है यह नहीं देखता।

वेब के समाधान से एकत्रित समाधान "किसी छवि को बिटमैप में डाउनलोड करने के लिए कोई कैसे उपयोग करता है?"

मैं ग्लाइड के साथ पर्याप्त परिचित नहीं हूँ, लेकिन ऐसा लगता है कि अगर आप लक्ष्य का आकार जानते हैं, तो आप ऐसा कुछ उपयोग कर सकते हैं:

 Bitmap theBitmap = Glide. with(this). load("http://...."). asBitmap(). into(100, 100). // Width and height get(); 

ऐसा लगता है कि आप -1,-1 पारित कर सकते हैं, और पूर्ण आकार की छवि प्राप्त कर सकते हैं (विशुद्ध रूप से परीक्षणों के आधार पर, उसे प्रलेखित नहीं किया जा सकता है)।

into(int,int) ध्यान दें एक FutureTarget<Bitmap> , इसलिए आपको यह एक प्रयास-पकड़ ब्लॉक में ExecutionException और InterruptedException FutureTarget<Bitmap> को लपेट करना होगा। यहां एक अधिक पूर्ण उदाहरण कार्यान्वयन, परीक्षण और कार्य किया गया है:

 class SomeActivity extends Activity { private Bitmap theBitmap = null; @Override protected void onCreate(Bundle savedInstanceState) { // onCreate stuff ... final ImageView image = (ImageView) findViewById(R.id.imageView); new AsyncTask<Void, Void, Void>() { @Override protected Void doInBackground(Void... params) { Looper.prepare(); try { theBitmap = Glide. with(SomeActivity.this). load("http://img.hiwab.com/android&usg=ALkJrhgErRZnP8Ugmv1kU0W1NtaRQ3CN9A/logo11w.png"). asBitmap(). into(-1,-1). get(); } catch (final ExecutionException e) { Log.e(TAG, e.getMessage()); } catch (final InterruptedException e) { Log.e(TAG, e.getMessage()); } return null; } @Override protected void onPostExecute(Void dummy) { if (null != theBitmap) { // The full bitmap should be available here image.setImageBitmap(theBitmap); Log.d(TAG, "Image loaded"); }; } }.execute(); } } 

नीचे दिए गए टिप्पणी में मोनकीलेस के सुझाव के बाद (और यह आधिकारिक तौर पर भी प्रतीत होता है ), आप SimpleTarget उपयोग कर सकते हैं, वैकल्पिक रूप से कोड को आसान बनाने के लिए वैकल्पिक override(int,int) के साथ SimpleTarget सकते हैं हालांकि, इस मामले में सटीक आकार प्रदान किया जाना चाहिए (1 से नीचे कुछ भी स्वीकार नहीं किया गया है):

 Glide .with(getApplicationContext()) .load("http://img.hiwab.com/android&usg=ALkJrhgErRZnP8Ugmv1kU0W1NtaRQ3CN9A/logo11w.png") .asBitmap() .into(new SimpleTarget<Bitmap>(100,100) { @Override public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) { image.setImageBitmap(resource); // Possibly runOnUiThread() } }); 

नवीनतम ग्लाइड संस्करण के साथ अच्छी तरह से compile 'com.github.bumptech.glide:glide:4.0.0' आपको आकार या कुछ भी प्रदान करने की आवश्यकता नहीं है, यह अब बहुत आसान है

 Glide.with(this) .asBitmap() .load(path) .into(new SimpleTarget<Bitmap>() { @Override public void onResourceReady(Bitmap resource, Transition<? super Bitmap> transition) { imageView.setImageBitmap(resource); } }); 

और संस्करणों के compile 'com.github.bumptech.glide:glide:3.7.0' और पुराने compile 'com.github.bumptech.glide:glide:3.7.0'

 Glide.with(this) .load(path) .asBitmap() .into(new SimpleTarget<Bitmap>() { @Override public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) { imageView.setImageBitmap(resource); } }); 

ऐसा लगता है कि Target श्रेणी को ओवरराइड करना या setResource Target जैसे कार्यान्वयन में से एक और बिटमैप को कैप्चर करने के लिए setResource विधि को ओवरराइड करने का तरीका हो सकता है …

यह अप्रयुक्त नहीं है 🙂

  Glide.with(context) .load("http://goo.gl/h8qOq7") .asBitmap() .into(new BitmapImageViewTarget(imageView) { @Override protected void setResource(Bitmap resource) { // Do bitmap magic here super.setResource(resource); } }); 

यह मेरे लिए क्या काम है: https://github.com/bumptech/glide/wiki/Custom-targets#overriding-default-behavior

 import com.bumptech.glide.Glide; import com.bumptech.glide.request.transition.Transition; import com.bumptech.glide.request.target.BitmapImageViewTarget; ... Glide.with(yourFragment) .load("yourUrl") .asBitmap() .into(new BitmapImageViewTarget(yourImageView) { @Override public void onResourceReady(Bitmap bitmap, Transition<? super Bitmap> anim) { super.onResourceReady(bitmap, anim); Palette.generateAsync(bitmap, new Palette.PaletteAsyncListener() { @Override public void onGenerated(Palette palette) { // Here's your generated palette Palette.Swatch swatch = palette.getDarkVibrantSwatch(); int color = palette.getDarkVibrantColor(swatch.getTitleTextColor()); } }); } });