Advertisement
Guest User

Untitled

a guest
Jul 2nd, 2015
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.83 KB | None | 0 0
  1. class CellDrawableProvider {
  2. private final Map<Object, Drawable> drawables;
  3. private final Resources resources;
  4.  
  5. CellDrawableProvider(Resources resources) {
  6. this.resources = resources;
  7. this.drawables = new HashMap<Object, Drawable>();
  8. }
  9.  
  10. Drawable getCellDrawable(int moveIconId, int fireIconId) {
  11. if (fireIconId == android.R.color.transparent) {
  12. return getDrawable(moveIconId);
  13. } else {
  14. return getLayerDrawable(moveIconId, fireIconId);
  15. }
  16. }
  17.  
  18. private Drawable getLayerDrawable(int moveIconId, int fireIconId) {
  19. Object layerDrawableKey = Pair.create(moveIconId, fireIconId);
  20. Drawable layerDrawable = drawables.get(layerDrawableKey);
  21. if (layerDrawable == null) {
  22. layerDrawable = createLayerDrawable(moveIconId, fireIconId);
  23. drawables.put(layerDrawableKey, layerDrawable);
  24. }
  25. return layerDrawable;
  26. }
  27.  
  28. private Drawable createLayerDrawable(int moveIconId, int fireIconId) {
  29. Drawable[] layers = new Drawable[2];
  30. layers[0] = getDrawable(moveIconId);
  31. layers[1] = getDrawable(fireIconId);
  32. return new LayerDrawable(layers);
  33. }
  34.  
  35. private Drawable getDrawable(int iconId) {
  36. Drawable drawable = drawables.get(iconId);
  37. if (drawable == null) {
  38. drawable = resources.getDrawable(iconId);
  39. drawables.put(iconId, drawable);
  40. }
  41. return drawable;
  42. }
  43. }
  44.  
  45. Drawable dr = getCachedDrawable(isColorDrawable ? mColorDrawableCache : mDrawableCache, key);
  46.  
  47. if (dr != null) {
  48. return dr;
  49. }
  50.  
  51. private Drawable getDrawable(int iconId) {
  52. Drawable drawable = drawables.get(iconId);
  53. if (drawable == null) {
  54. drawable = resources.getDrawable(iconId);
  55. drawables.put(iconId, drawable);
  56. }
  57. return drawable;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement