2011-09-26 125 views
6

在我的應用程序中,我有很多圖片,我在res/drawable下分組在文件夾中。但Android不讓我通過「R」訪問它們。有沒有辦法訪問這些文件夾。如何訪問res/drawable /「文件夾」

這是我使用的代碼。

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

我標記了我無法訪問的部分。

提前THX

野生動物園

+1

我認爲必須有**進口com.android.R; **或其他一些中的R文件導入刪除它並生成項目再次它可能是指錯誤R.java文件,所以引用生成....... – Hanry

+0

可能重複的[Android的可繪製目錄是否包含子目錄?](http://stackoverflow.com/questions/1077357/can -the-android-drawable-directory-contain-subdirectories) – user2864740

回答

18

不,安卓不允許子文件夾:Can the Android drawable directory contain subdirectories?

但是你可以,添加/drawable下的所有圖片文件,然後通過編程方式訪問它們:

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

哪裏drawableName是繪製文件的名稱,即:myimage如果圖像文件是myimage.jpg

上面的代碼將獲得圖像資源ID爲。

+0

如果我的圖片被稱爲「angel.gif」,我必須將drawableName改爲「天使」吧? Thx爲您提供幫助! – safari

+0

只需檢查此問題:http://stackoverflow.com/questions/4930398/can-the-android-layout-folder-contain-subfolders –

1

您不能在資源創建文件夾/繪製系統無法識別這些。

+0

+1,是的,我完全同意你的看法。@ Safari,你只需檢查這個鏈接:http://stackoverflow.com/questions/4930398/can-the -一個droid-layout-folder-contain-subfolders –

0

你需要先保存圖像,然後作出一個xml他們這樣你就可以/res/drawable下訪問它通過R.your_pics

+0

你有這樣的考試嗎?會太棒了! – safari

2

R.drawable.xxx只是Android SDK在R.java文件中生成的引用。您正在嘗試在res文件夾中創建一個子文件夾。 SDK不能生成對任何子文件夾的引用,您必須將其放置在預定義的文件夾drawable-hdpi,-ldpi和-mdpi中。 如果你不知道這是如何工作的。我會總結一下。 Android運行在許多不同屏幕分辨率的不同設備上。使用這三個文件夾,您可以在三種分辨率下獲得相同的圖片,並根據您運行應用程序的設備,使用這三個文件夾中的一個。你可以在這裏閱讀更多: http://developer.android.com/guide/practices/screens_support.html