我想在Android Studio中我的應用活動類之外的類中的可繪製文件夾中創建一個圖像數組。我可以使用getResources()方法,但只能在活動中使用。我想保持我的代碼清潔和組織,並在我的活動中創建數組可能會變得雜亂,如果我積累更多的圖像。有沒有類似的方法或從外部類訪問getResources()方法的方法?我想要做的是使用我的可繪製文件夾中的圖像生成隨機背景。由於我是一名新開發人員,並且可能會錯誤地解決此問題,所以我願意接受這些建議。如何在Android Studio中調用/使用活動類以外的文件?
2
A
回答
0
這是我如何解決我的問題:
我誤以爲我需要一個getResources()
樣的方法來我的圖像文件存儲在陣列中。
相反,我發現你可以簡單地將文件存儲到這樣的:
public class BackgroundCatalogue {
public int[] mBackgroundCatalogue = {
R.drawable.image1,
R.drawable.image2,
R.drawable.image3,
R.drawable.image4
};
}
我跑進我的Activity
使用getResources
,因爲我想我的應用程序的API 14和更高的運行問題。此解決方法如下使用ResourcesCompat
:
Drawable drawable = ResourcesCompat.getDrawable(getResources(), mBackgroundCatalogue.getBackground(), null);
backgroundImageView.setImageDrawable(drawable);
getBackground
是我在其他類中定義的自定義的方法,其拾取存儲在數組中的隨機圖像文件。
4
您不需要Activity
本身就可以獲得您的Resources
。 Activity
從Context
延伸;它是Context
,它可以讓你訪問你的資源。如果您只想獲得Resources
的參考資料,您只需要一個Context
的課程。
0
我能夠通過導入android.content.res.Resources;
,然後訪問這樣的圖片做:
Resources res = getResources();
Drawable image = res.getDrawable(R.drawable.imageName);
在外部類。你的課應該擴展如View
來訪問MainActivity的上下文。例:
public class MyClass extends View{
Resources res = getResources();
Drawable image = res.getDrawable(R.drawable.imageName);
public MyClass(Context context) {
super(context);
}
}
的R.drawable
指向的圖片所在的文件夾簡單地將其更改爲R.folderName,以滿足您的需求。該文件夾必須位於項目的res文件夾中。
相關問題
- 1. 如何在Android Studio的活動類中調用類(這不是活動)?
- 2. 如何在Android Studio中查找活動的調用類?
- 3. 在Android活動中使用外部類
- 4. 如何在活動恢復但不活動時啓動Android中的事件如何在Android中調用活動
- 5. 如何從Android活動調用Java類
- 6. 如何在Android中調用活動
- 7. Android findViewById在主類以外的類中使用時返回null活動
- 8. Android:如何從使用Intent的活動調用片段類
- 9. 如何從Android中的jar文件調用活動?
- 10. 未在Android Studio中爲新活動生成的Java類文件
- 11. 如何在android中調用以前的活動?
- 12. 如何調用alertDialog中一個活動的超類方法(Android Studio)
- 13. 如何在android studio 1.5.x中使用選項卡式活動?
- 14. Android:如何在運行活動中調用活動?
- 15. 如何在Android中使用新線程調用新活動
- 16. 我們可以調用一個apk文件到外部的Android活動
- 17. 如何從android中的非活動類中調用片段
- 18. android中的非活動類的活動調用方法
- 19. 從外部類調用活動方法
- 20. 如何在Android中的jar文件中運行類活動?
- 21. 如何在cocos2d-android中使用活動?
- 22. 如何在android中使用onResume活動
- 23. 如何使用Android Studio中的onMarkerClick來打開新活動
- 24. 如何跟蹤Android Studio項目列表中的活動文件?
- 25. 在android studio中調用一個新的活動
- 26. Android Studio:在主線活動的線程中調用方法
- 27. Android如何調用非活動類中的MainActivity方法
- 28. 使用Android Studio的活動NoClassDefFoundError
- 29. java.lang.RuntimeException:無法啓動活動ComponentInfo和在Android Studio中調用另一個活動
- 30. 在jar文件中調用活動
好吧,這聽起來像我需要的東西。我如何讓課堂採用'Context'?例如,我的班級名稱是「BackgroundCatalogue」。而當我做什麼'上下文'我輸入?我認爲它看起來像這樣:'BackgroundCatalogue(Context context){...'。 – YoungCoconutCode
正確,您需要將'Context'傳遞給'BackgroundCatalogue'的構造函數。 – Emmanuel
當我嘗試這樣的:'公共類BackgroundCatalogue(上下文上下文){...'我得到一個錯誤,說''類'或'接口'預期'。當我在'Activity'中嘗試這樣做時:'public BackgroundCatalogue mBackgroundCatalogue = new BackgroundCatalogue(Context context);'它在第二個'context'中給我一個錯誤,說'無法解析符號'context''。 – YoungCoconutCode