2013-09-24 11 views
15

मेरे पास एक एंड्रॉइड एप्लिकेशन है जिसमें मेरे पास संपत्ति फ़ोल्डर में कई छवियां हैं। अब मैं उन छवियों का एक सरणी बनाना चाहता हूं। अब मेरी समस्या है: - जब हमारे छवियों drawable में हैं हम की तरहसंपत्ति फ़ोल्डर से छवियों को लोड करें

int x[] = { 
    R.drawable.ss, 
    R.drawable.aa, R.drawable.sk, 
    R.drawable.xx 
}; 

और इतने पर एक सरणी बना सकते हैं। जब मैं अपनी छवियों को संपत्ति फ़ोल्डर में रखता हूं तो मैं ऊपर की तरह छवियों की एक सरणी कैसे बना सकता हूं। मैं कक्षा स्तर पर एक सरणी बनाना चाहता हूं।

+0

आप फ़ाइल नामों के साथ एक स्ट्रिंग सरणी – JRowan

+0

उपयोग खोज http://stackoverflow.com/questions/7645268/how-to- साथ यह कर सकता है: आप छवियों है, तो आप कुछ इस तरह कर सकते हैं लोड-ए-इमेज-से-एसेट्स – Lebedevsd

उत्तर

25

आप नीचे दिए गए की तरह छवि से छवि को पढ़ने के लिए:

आप AssetManager का उपयोग अपनी खुली() विधि का उपयोग कर InputStream पाने के लिए और उसके बाद decodeStream() BitmapFactory की विधि का उपयोग बिटमैप प्राप्त करने के लिए कर सकते हैं।

private Bitmap getBitmapFromAsset(String strName) 
    { 
     AssetManager assetManager = getAssets(); 
     InputStream istr = null; 
     try { 
      istr = assetManager.open(strName); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     Bitmap bitmap = BitmapFactory.decodeStream(istr); 
     return bitmap; 
    } 
6

आपकी छवियों संपत्ति निर्देशिका में छवि फ़ोल्डर में जमा हो जाती है, तो आप जिस तरह से

private List<String> getImage(Context context) throws IOException { 
     AssetManager assetManager = context.getAssets(); 
     String[] files = assetManager.list("image"); 
     List<String> it = Arrays.asList(files); 
     return it; 
} 
+0

मैं कक्षा स्तर पर इसे घोषित करना चाहता हूं। क्या यह संभव है – suneel

+0

तो आपको संपत्ति प्राप्त करने के बाद पहले संदर्भ प्राप्त करने की आवश्यकता है –

+0

उदाहरण के साथ आप – suneel

0

आप ड्रॉएबल और assests के बारे में गलत अर्थ नहीं है के रूप में छवि की सूची प्राप्त कर सकते हैं। आप सरणी od "drawables" बना सकते हैं, क्योंकि सभी ड्रॉबल्स के पास R (जैसे R.dawable.ss) में स्वयं के आईडी होते हैं, इसलिए यदि आपके पास उचित संदर्भ है तो आप ड्रायरेबल प्राप्त करने के लिए निर्दिष्ट पूर्णांक का उपयोग कर सकते हैं।

छवियों जैसी फ़ाइलों का प्रबंधन करने का एक और तरीका है assests। यदि आप छवियों को उनके आईडी द्वारा प्रबंधित करना चाहते हैं तो आपको इन छवियों को ड्रॉबेल करना होगा। दूसरी तरफ, assests फ़ाइलों को डीआईआर में एक साधारण फाइलों की तरह प्रबंधित किया जाना चाहिए।

आपको AssetManager am=this.getAssets(); संपत्तियों से फ़ाइलें प्राप्त करनी होंगी और फिर पढ़ने/लिखने के लिए फ़ाइल तैयार करनी होगी।

try {  
    Bitmap bmp=BitmapFactory.decodeStream(am.open("009.gif")); 
    imageView.setImageBitmap(bmp); 

} catch (IOException e) { 
    e.printStackTrace(); 
} 
4
// load image from asset folder 
     try { 
      // get input stream 
      InputStream ims = getAssets().open("avatar.jpg"); 
      // load image as Drawable 
      Drawable d = Drawable.createFromStream(ims, null); 
      // set image to ImageView 
      mImage.setImageDrawable(d); 
     } 
     catch(IOException ex) { 
      return; 
     } 

    or you can create drawable array 
    Drawable d []={d}; 
संबंधित मुद्दे