BitmapDrawable पदावनत विकल्प


88

मेरे पास निम्नलिखित कोड है जो एक ड्रॉबल को डिग्री की एक निर्धारित राशि से घुमाएगा।

    public Drawable rotateDrawable(float angle, Context context)
    {
      Bitmap arrowBitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.generic2rb);

      // Create blank bitmap of equal size
      Bitmap canvasBitmap = arrowBitmap.copy(Bitmap.Config.ARGB_8888, true);
      canvasBitmap.eraseColor(0x00000000);

      // Create canvas
      Canvas canvas = new Canvas(canvasBitmap);

      // Create rotation matrix
      Matrix rotateMatrix = new Matrix();
      rotateMatrix.setRotate(angle, canvas.getWidth()/2, canvas.getHeight()/2);

      //Draw bitmap onto canvas using matrix
      canvas.drawBitmap(arrowBitmap, rotateMatrix, null);

      return new BitmapDrawable(canvasBitmap); 
    }

नए एसडीके का कहना है कि द

BitmapDrawable(canvasBitmap); 

पदावनत किया गया है। सभी में कोई विकल्प?

http://developer.android.com/reference/android/graphics/drawable/BitmapDrawable.html


1
व्हाट्सएप गलत है 'नए बिटमैपडेबल (संदर्भ.गेटइंडोर्स (), कैनवसबिटमैप)?'
रूबेन स्क्रैटन

जवाबों:


201

इसके बजाय यह करें:

return new BitmapDrawable(context.getResources(), canvasBitmap);

ठीक है धन्यवाद, यह काम करने लगता है। मुझे वहां के वंचित होने की चिंता थी! यह आइकन को बड़ा बनाता प्रतीत होता है, लेकिन मैं आगे देखूंगा!
ली आर्मस्ट्रांग

7
@LeeArmstrong यह बड़ा दिखता है क्योंकि यह आपकी स्क्रीन के घनत्व में छवि को समायोजित करने के लिए संसाधन ऑब्जेक्ट का उपयोग कर रहा है। अक्सर एक विधि को पदावनत करने का अर्थ है कि यह अब चीजों को करने का सही तरीका नहीं है, लेकिन अक्सर इसे पीछे की ओर-अनुकूलता रखने के लिए लागू किया जाता है। हालाँकि, Google हमेशा एपीआई के अनुकूल नहीं लगता है, इसलिए यह मुझे आश्चर्यचकित नहीं करेगा अगर उन्होंने भविष्य में पुराने निर्माता को तोड़ दिया।
24

मुझे उपकरण वर्ग की स्थिर विधि में नए बिटमैप बनाने योग्य बनाना है। मेरे पास संदर्भ तक पहुंच नहीं है। मैं इस मामले में इस पद्धति का उपयोग कैसे कर सकता हूं?
मारेक

1
@ मारेक मुझे लगता है कि आपको एक नया प्रश्न खोलना चाहिए जिसमें सभी प्रासंगिक स्रोत कोड शामिल हैं, जिसमें आप उस पद्धति को कॉल कर रहे हैं। आपको संदर्भ (या संसाधन) के रूप में अच्छी तरह से पारित करने के लिए उस विधि को वापस करने की आवश्यकता हो सकती है।
13

2
यह नया कंस्ट्रक्टर बिटमैप को मापता है, जो कई मामलों में वांछित व्यवहार नहीं है।
मोक्सर

2

एक बार यह कोशिश करो।

  1. गतिविधि में

    BitmapDrawable background = new BitmapDrawable(this.getResources(), blurImageBg);
    
  2. खुशबू में

    BitmapDrawable background = new BitmapDrawable(getActivity(), blurImageBg);
    
  3. एडॉप्टर में या अन्य

    BitmapDrawable background = new BitmapDrawable(context.getResources(), blurImageBg);
    

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.