2011-09-26 9 views
6

Na mojej aplikacji mam wiele zdjęć, które zgrupowałem w folderze pod opcją res/drawable. Ale Android nie pozwala mi uzyskać do nich dostępu przez "R". Czy istnieje sposób dostępu do tych folderów.Jak uzyskać dostęp do res/rysowania/"folderu"

To jest kod używany przez.

ImageView iv = new ImageView(conext); 
    iv.setImageResource(R.drawable.**smiley.666**); 

Oznakowałem część, do której nie mam dostępu.

Thx z gory

safari

+1

myślę, że musi być ** import com.android.R; ** lub jakiś inny R importowany w pliku po prostu usunąć go i budować swój projekt znowu może to być odwołanie do niewłaściwego pliku R.java, więc generowane jest odniesienie ........ – Hanry

+0

możliwy duplikat [Czy katalog rysunkowy Androida może zawierać podkatalogi?] (http://stackoverflow.com/questions/1077357/can -the-android-drawable-katalog-zawiera-podkatalogi) – user2864740

Odpowiedz

18

Nie, Android nie pozwala podfoldery pod /res/drawable: Can the Android drawable directory contain subdirectories?

Można jednak dodać wszystkie pliki graficzne pod /drawable a następnie uzyskać do nich dostęp programowo poprzez:

int drawableID = context.getResources().getIdentifier("drawableName", "drawable", getPackageName()); 
iv.setImageResource(drawableID); 

Gdzie drawableName jest nazwa pliku rozciągliwej, tj myimage, jeśli plik obrazu to myimage.jpg.

Powyższy kod otrzyma zasoby obrazu o identyfikatorze .

+0

Jeśli moje zdjęcie nazywa się "angel.gif", muszę zmienić właściwość drawableName w "anioł", prawda? Thx za pomoc! – safari

+0

Sprawdź również to pytanie: http://stackoverflow.com/questions/4930398/can-the-android-layout-folder-contain-subfolders –

1

Nie można tworzyć foldery w res/rozciągliwej system nie rozpoznaje tych.

+0

+1, tak dokładnie całkowicie się z Tobą zgadzam. @ Safari, po prostu sprawdź ten link: http://stackoverflow.com/questions/4930398/can-the -na droid-layout-folder-zawiera-podfoldery –

0

trzeba zapisać obraz, a następnie dokonać xml do nich, dzięki czemu można uzyskać do niego dostęp za pośrednictwem R.your_pics

+0

Czy masz do tego przykład? Byłoby zbyt wielkie! – safari

2

R.drawable.xxx to tylko odniesienie, które SDK systemu Android generuje w pliku R.java. Próbujesz utworzyć podkatalog w folderze res. Zestaw SDK nie może wygenerować odwołania do żadnego z podfolderów, musisz umieścić go w predefiniowanych folderach drawable-hdpi, -ldpi i -mdpi. Jeśli nie wiesz, jak to działa. Podsumuję. Android działa na wielu różnych urządzeniach z wieloma różnymi rozdzielczościami ekranu. Dzięki tym trzem folderom możesz mieć to samo zdjęcie w trzech rozdzielczościach iw zależności od urządzenia, na którym uruchamiasz aplikację, zostanie użyty jeden z tych trzech folderów. Możesz przeczytać więcej tutaj: http://developer.android.com/guide/practices/screens_support.html