2013-01-16 28 views
6

ten kodOdzyskaj hidensity rozciągliwej z pakietu (plaster miodu)

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

retreive do 48x48 (MDPI) rozciągliwej nawet na moim hidensity plastra miodu urządzenie.

Biorąc pod uwagę, że mogę powiększyć rysowanie przez Bitmap.createScaledBitmap, Pytam, jak wyodrębnić ikonę gęstości, która już tam jest. Metoda getDrawableForDensity nie jest dostępna dla sdk < 15, ale nie jestem szczęśliwy, aby wywołać funkcję skalowania dla każdej ikony, którą mam narysować, gdy jest ona dostępna w pakiecie za darmo.

Edycja dla laski

zapominając na chwilę moim gęstości wyświetlacza urządzenia pytanie jest następujące: otrzymuje własny pakiet dla których wiemy na pewno mieć ikonę 72x72 w folderze względne hdpi OZE, jak wyodrębnić tę ikonę z innej paczki?

THIS FUNCTION nie jest dostępny w środowisku o strukturze plastra miodu.

+0

Do czego używasz losowania, gdy już je masz? Wydaje mi się, że możesz użyć 'R.drawable.id' obrazu, aby go pobrać, który automatycznie pobierze poprawny dla dowolnego ekranu rozmiaru, na którym aktualnie pracujesz. – FoamyGuy

+0

Może masz problem z wielkością (są różne). Nie powinieneś skalować swoich zasobów PNG (to jest cały cel użycia różnych rozdzielczości). – Booger

+0

cześć FoamGuy Próbowałem już wyodrębnić ikonę według określonego identyfikatora, ale wynik jest taki sam: 48x48 losowania. Booger: Nic nie mylę: biorąc paczkę, chcę rysować 72x72, o której wiem, że tam byłem. Moja gęstość ekranu to HI_DENSITY, a rozwiązaniem może być getDrawableForDensity, ale nie jest dostępna. – lorenzoff

Odpowiedz

1

znaleźć rozciągliwej directlyy z dobrej gęstości, trzeba po prostu spróbować to:

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

czym polega problem? Jeśli Android dostanie ikonę 48x48, to jest to, że dobra ikona lub, nie ustawiłeś ikony w dobrym folderze res/drawable.

+0

Tak, dziękuję za odpowiedź, ale pytanie nie jest, czy ikona 48x48 jest dobra czy nie, ale jak wyodrębnić wszystkie ikony rozdzielczości z paczki niezależnie od gęstości urządzenia. Jak już napisałem przy użyciu API> 15, funkcja, która robi dokładnie to, czego potrzebuję, jest dostępna (getDrawableForDensity), a pytanie brzmi: jak uzyskać ten sam wynik bez użycia tej funkcji. – lorenzoff