2013-01-16 22 views
6

paketi (Petek) den hidensity çekilebilir

final ApplicationInfo ai = getPackageManager().getApplicationInfo("com.company.hello", 0); 
final Drawable d = getPackageManager().getApplicationIcon(ai); 

bile benim hidensity petek cihaz üzerinde 48x48 (mdpi) çekilebilir retreive Bu kodu alın.

Çizgiyi Bitmap.createScaledBitmap ile büyütebildiğim göz önüne alındığında, oradaki hi yoğunluğu simgesinin nasıl çıkarılacağını soruyorum. getDrawableForDensity yöntemi, < sdk için kullanılamaz, ancak ücretsiz olarak pakette bulunduğunda çizeceğim her simge için bir ölçekleme işlevi çağırmaktan mutluluk duyuyorum. Bir cihazım ekran yoğunluğu ise soru şudur için unutmadan lütuf

için

Düzenleme: emin göreli hdpi res klasöründe bir 72x72 simgesi olması için biz bildiğiniz bir kendi paketini göz önüne alındığında, Bu simgeyi başka bir paketten nasıl çıkartabilirsiniz? Honeycomb ortamında mevcut değildir.

THIS FUNCTION Honeycomb ortamında yoktur.

+0

Bir kez sahip olduğunuz için çizilebilir nesneyi kullanıyorsunuz? Görüntüyü kullanmak için kullandığınız "R.drawable.id" yi kullanabiliyormuşsunuz gibi görünüyor, ki şu anda üzerinde çalıştığınız boyut ekranı için otomatik olarak doğru olanı yakalayacaktır. – FoamyGuy

+0

Belki de boyutlarını yoğunlukla karıştırıyorsunuz (farklılar). PNG kaynaklarınızı ölçeklememelisiniz (bu, farklı çözünürlük çizgilerini kullanmanın tüm amacıdır). – Booger

+0

Merhaba FoamGuy Simgeyi belirli bir kimlikle çıkarmayı denedim ama sonuç aynı: 48x48 çekilebilir. Booger: Hiçbir şey kafamı karıştırmıyorum: Bir paket verildiğinde, orada olduğunu bildiğim 72x72 çekilişin olmasını istiyorum. Ekran yoğunluğum HI_DENSITY ve çözüm getDrawableForDensity olabilir, ancak mevcut değil. – lorenzoff

cevap

1

iyi yoğunluk ile çekilebilir directlyy bulmak için, sadece bu denemek için adres:

mContext.getResources().getDrawable(R.drawable.mydrawable); 

sorunu nedir? Eğer android size bir 48x48 simgesi getirirse, bu iyi ikon veya iyi res/drawable- klasöründe simge belirlememiş olmanızdır.

+0

Evet, cevabınız için teşekkürler, ancak soru 48x48 simgesinin iyi olup olmadığı değil, cihaz yoğunluğundan bağımsız olarak tüm çözünürlük simgelerinin bir paketten nasıl çıkarılacağıdır. API> 15'i kullanarak tam olarak ihtiyacım olan şeyi (getDrawableForDensity) kullanan bir işlev yazdım ve soru, bu funcion'u kullanmadan aynı sonucu nasıl alacağımızdır. – lorenzoff