2011-01-31 17 views
6

Harici bağımlı kavanoz kitaplığı içeren bir Android Uygulaması var. Bu dış kütüphane, uyguladığım bazı ImageView'larda göstermek istediğim bazı png-bitmap'leri içeriyor.Android ImageView için resim sınıf yolundan nasıl yüklenir?

Uygulamamın apk dosyasına baktığımda, görüntüleri bir alt dizinde ("aq \ img") beklendiği gibi bulabilirim.

Görüntüyü bir ImageView üzerinde göstermenin (sınıf yolunu anlama) en iyi yolu nedir?

Bu

ImageView imgView01 = (ImageView) findViewById(R.id.imageView1); 
    Drawable d = Drawable.createFromPath("aq/img/sample.png"); 
    imgView01.setImageDrawable(d); 

ve bu

InputStream is = ClassLoader 
      .getSystemResourceAsStream("sample.png"); 
    Bitmap bm = BitmapFactory.decodeStream(is); 
    imgView01.setImageBitmap(bm); 

denedik ama (ben gerçekten bu kadar basit olmasını beklemiyorduk) çalışmadı. Görüntü boş kalıyor.

Yardımlarınız için teşekkürler! Android'de bir sistem kaynak düzenli dosya sistemindeki bir dosya olduğu için

Selamlar Klaus

cevap

4

PNG resim bir "sistem kaynağı" değildir. İstediğiniz görüntü APK arşivinde. Dosyayı kendiniz ayıklamak için mantığı uygulamadıkça, APK arşivinin baytlarını okumak için InputStream'u açmak için getSystemResourceAsStream'u kullanabilirsiniz.

Basitçe bu kullanın:

InputStream is = getClass().getClassLoader().getResourceAsStream("aq/img/sample.png"); 

DÜZENLEME: Android'de, getSystemResourceAsStream geçirilir adı kökü (/) için dosya için bir yol olarak kabul edilir olduğunu Not. APK'lar /data/app'da depolandığından, APK'yı okumak için bir InputStream açmak için, uygulamanızın paketi olan "PAKET" öğesinin olduğu ClassLoader.getSystemResourceAsStream("data/app/PACKAGE-1.apk")'u kullanabilirsiniz.

İlgili konular