CircleImageView.smali 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395
  1. .class Landroid/support/v4/widget/CircleImageView;
  2. .super Landroid/widget/ImageView;
  3. .source "CircleImageView.java"
  4. # annotations
  5. .annotation system Ldalvik/annotation/MemberClasses;
  6. value = {
  7. Landroid/support/v4/widget/CircleImageView$OvalShadow;
  8. }
  9. .end annotation
  10. # static fields
  11. .field private static final FILL_SHADOW_COLOR:I = 0x3d000000
  12. .field private static final KEY_SHADOW_COLOR:I = 0x1e000000
  13. .field private static final SHADOW_ELEVATION:I = 0x4
  14. .field private static final SHADOW_RADIUS:F = 3.5f
  15. .field private static final X_OFFSET:F = 0.0f
  16. .field private static final Y_OFFSET:F = 1.75f
  17. # instance fields
  18. .field private mListener:Landroid/view/animation/Animation$AnimationListener;
  19. .field private mShadowRadius:I
  20. # direct methods
  21. .method public constructor <init>(Landroid/content/Context;IF)V
  22. .locals 12
  23. .param p1, "context" # Landroid/content/Context;
  24. .param p2, "color" # I
  25. .param p3, "radius" # F
  26. .prologue
  27. .line 52
  28. invoke-direct {p0, p1}, Landroid/widget/ImageView;-><init>(Landroid/content/Context;)V
  29. .line 53
  30. invoke-virtual {p0}, Landroid/support/v4/widget/CircleImageView;->getContext()Landroid/content/Context;
  31. move-result-object v7
  32. invoke-virtual {v7}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
  33. move-result-object v7
  34. invoke-virtual {v7}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics;
  35. move-result-object v7
  36. iget v1, v7, Landroid/util/DisplayMetrics;->density:F
  37. .line 54
  38. .local v1, "density":F
  39. mul-float v7, p3, v1
  40. const/high16 v8, 0x40000000 # 2.0f
  41. mul-float/2addr v7, v8
  42. float-to-int v2, v7
  43. .line 55
  44. .local v2, "diameter":I
  45. const/high16 v7, 0x3fe00000 # 1.75f
  46. mul-float/2addr v7, v1
  47. float-to-int v6, v7
  48. .line 56
  49. .local v6, "shadowYOffset":I
  50. const/4 v7, 0x0
  51. mul-float/2addr v7, v1
  52. float-to-int v5, v7
  53. .line 58
  54. .local v5, "shadowXOffset":I
  55. const/high16 v7, 0x40600000 # 3.5f
  56. mul-float/2addr v7, v1
  57. float-to-int v7, v7
  58. iput v7, p0, Landroid/support/v4/widget/CircleImageView;->mShadowRadius:I
  59. .line 61
  60. invoke-direct {p0}, Landroid/support/v4/widget/CircleImageView;->elevationSupported()Z
  61. move-result v7
  62. if-eqz v7, :cond_0
  63. .line 62
  64. new-instance v0, Landroid/graphics/drawable/ShapeDrawable;
  65. new-instance v7, Landroid/graphics/drawable/shapes/OvalShape;
  66. invoke-direct {v7}, Landroid/graphics/drawable/shapes/OvalShape;-><init>()V
  67. invoke-direct {v0, v7}, Landroid/graphics/drawable/ShapeDrawable;-><init>(Landroid/graphics/drawable/shapes/Shape;)V
  68. .line 63
  69. .local v0, "circle":Landroid/graphics/drawable/ShapeDrawable;
  70. const/high16 v7, 0x40800000 # 4.0f
  71. mul-float/2addr v7, v1
  72. invoke-static {p0, v7}, Landroid/support/v4/view/ViewCompat;->setElevation(Landroid/view/View;F)V
  73. .line 74
  74. :goto_0
  75. invoke-virtual {v0}, Landroid/graphics/drawable/ShapeDrawable;->getPaint()Landroid/graphics/Paint;
  76. move-result-object v7
  77. invoke-virtual {v7, p2}, Landroid/graphics/Paint;->setColor(I)V
  78. .line 75
  79. invoke-virtual {p0, v0}, Landroid/support/v4/widget/CircleImageView;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V
  80. .line 76
  81. return-void
  82. .line 65
  83. .end local v0 # "circle":Landroid/graphics/drawable/ShapeDrawable;
  84. :cond_0
  85. new-instance v3, Landroid/support/v4/widget/CircleImageView$OvalShadow;
  86. iget v7, p0, Landroid/support/v4/widget/CircleImageView;->mShadowRadius:I
  87. invoke-direct {v3, p0, v7, v2}, Landroid/support/v4/widget/CircleImageView$OvalShadow;-><init>(Landroid/support/v4/widget/CircleImageView;II)V
  88. .line 66
  89. .local v3, "oval":Landroid/graphics/drawable/shapes/OvalShape;
  90. new-instance v0, Landroid/graphics/drawable/ShapeDrawable;
  91. invoke-direct {v0, v3}, Landroid/graphics/drawable/ShapeDrawable;-><init>(Landroid/graphics/drawable/shapes/Shape;)V
  92. .line 67
  93. .restart local v0 # "circle":Landroid/graphics/drawable/ShapeDrawable;
  94. const/4 v7, 0x1
  95. invoke-virtual {v0}, Landroid/graphics/drawable/ShapeDrawable;->getPaint()Landroid/graphics/Paint;
  96. move-result-object v8
  97. invoke-static {p0, v7, v8}, Landroid/support/v4/view/ViewCompat;->setLayerType(Landroid/view/View;ILandroid/graphics/Paint;)V
  98. .line 68
  99. invoke-virtual {v0}, Landroid/graphics/drawable/ShapeDrawable;->getPaint()Landroid/graphics/Paint;
  100. move-result-object v7
  101. iget v8, p0, Landroid/support/v4/widget/CircleImageView;->mShadowRadius:I
  102. int-to-float v8, v8
  103. int-to-float v9, v5
  104. int-to-float v10, v6
  105. const/high16 v11, 0x1e000000
  106. invoke-virtual {v7, v8, v9, v10, v11}, Landroid/graphics/Paint;->setShadowLayer(FFFI)V
  107. .line 70
  108. iget v4, p0, Landroid/support/v4/widget/CircleImageView;->mShadowRadius:I
  109. .line 72
  110. .local v4, "padding":I
  111. invoke-virtual {p0, v4, v4, v4, v4}, Landroid/support/v4/widget/CircleImageView;->setPadding(IIII)V
  112. goto :goto_0
  113. .end method
  114. .method static synthetic access$000(Landroid/support/v4/widget/CircleImageView;)I
  115. .locals 1
  116. .param p0, "x0" # Landroid/support/v4/widget/CircleImageView;
  117. .prologue
  118. .line 38
  119. iget v0, p0, Landroid/support/v4/widget/CircleImageView;->mShadowRadius:I
  120. return v0
  121. .end method
  122. .method static synthetic access$002(Landroid/support/v4/widget/CircleImageView;I)I
  123. .locals 0
  124. .param p0, "x0" # Landroid/support/v4/widget/CircleImageView;
  125. .param p1, "x1" # I
  126. .prologue
  127. .line 38
  128. iput p1, p0, Landroid/support/v4/widget/CircleImageView;->mShadowRadius:I
  129. return p1
  130. .end method
  131. .method private elevationSupported()Z
  132. .locals 2
  133. .prologue
  134. .line 79
  135. sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
  136. const/16 v1, 0x15
  137. if-lt v0, v1, :cond_0
  138. const/4 v0, 0x1
  139. :goto_0
  140. return v0
  141. :cond_0
  142. const/4 v0, 0x0
  143. goto :goto_0
  144. .end method
  145. # virtual methods
  146. .method public onAnimationEnd()V
  147. .locals 2
  148. .prologue
  149. .line 105
  150. invoke-super {p0}, Landroid/widget/ImageView;->onAnimationEnd()V
  151. .line 106
  152. iget-object v0, p0, Landroid/support/v4/widget/CircleImageView;->mListener:Landroid/view/animation/Animation$AnimationListener;
  153. if-eqz v0, :cond_0
  154. .line 107
  155. iget-object v0, p0, Landroid/support/v4/widget/CircleImageView;->mListener:Landroid/view/animation/Animation$AnimationListener;
  156. invoke-virtual {p0}, Landroid/support/v4/widget/CircleImageView;->getAnimation()Landroid/view/animation/Animation;
  157. move-result-object v1
  158. invoke-interface {v0, v1}, Landroid/view/animation/Animation$AnimationListener;->onAnimationEnd(Landroid/view/animation/Animation;)V
  159. .line 109
  160. :cond_0
  161. return-void
  162. .end method
  163. .method public onAnimationStart()V
  164. .locals 2
  165. .prologue
  166. .line 97
  167. invoke-super {p0}, Landroid/widget/ImageView;->onAnimationStart()V
  168. .line 98
  169. iget-object v0, p0, Landroid/support/v4/widget/CircleImageView;->mListener:Landroid/view/animation/Animation$AnimationListener;
  170. if-eqz v0, :cond_0
  171. .line 99
  172. iget-object v0, p0, Landroid/support/v4/widget/CircleImageView;->mListener:Landroid/view/animation/Animation$AnimationListener;
  173. invoke-virtual {p0}, Landroid/support/v4/widget/CircleImageView;->getAnimation()Landroid/view/animation/Animation;
  174. move-result-object v1
  175. invoke-interface {v0, v1}, Landroid/view/animation/Animation$AnimationListener;->onAnimationStart(Landroid/view/animation/Animation;)V
  176. .line 101
  177. :cond_0
  178. return-void
  179. .end method
  180. .method protected onMeasure(II)V
  181. .locals 3
  182. .param p1, "widthMeasureSpec" # I
  183. .param p2, "heightMeasureSpec" # I
  184. .prologue
  185. .line 84
  186. invoke-super {p0, p1, p2}, Landroid/widget/ImageView;->onMeasure(II)V
  187. .line 85
  188. invoke-direct {p0}, Landroid/support/v4/widget/CircleImageView;->elevationSupported()Z
  189. move-result v0
  190. if-nez v0, :cond_0
  191. .line 86
  192. invoke-virtual {p0}, Landroid/support/v4/widget/CircleImageView;->getMeasuredWidth()I
  193. move-result v0
  194. iget v1, p0, Landroid/support/v4/widget/CircleImageView;->mShadowRadius:I
  195. mul-int/lit8 v1, v1, 0x2
  196. add-int/2addr v0, v1
  197. invoke-virtual {p0}, Landroid/support/v4/widget/CircleImageView;->getMeasuredHeight()I
  198. move-result v1
  199. iget v2, p0, Landroid/support/v4/widget/CircleImageView;->mShadowRadius:I
  200. mul-int/lit8 v2, v2, 0x2
  201. add-int/2addr v1, v2
  202. invoke-virtual {p0, v0, v1}, Landroid/support/v4/widget/CircleImageView;->setMeasuredDimension(II)V
  203. .line 89
  204. :cond_0
  205. return-void
  206. .end method
  207. .method public setAnimationListener(Landroid/view/animation/Animation$AnimationListener;)V
  208. .locals 0
  209. .param p1, "listener" # Landroid/view/animation/Animation$AnimationListener;
  210. .prologue
  211. .line 92
  212. iput-object p1, p0, Landroid/support/v4/widget/CircleImageView;->mListener:Landroid/view/animation/Animation$AnimationListener;
  213. .line 93
  214. return-void
  215. .end method
  216. .method public setBackgroundColor(I)V
  217. .locals 1
  218. .param p1, "color" # I
  219. .prologue
  220. .line 122
  221. invoke-virtual {p0}, Landroid/support/v4/widget/CircleImageView;->getBackground()Landroid/graphics/drawable/Drawable;
  222. move-result-object v0
  223. instance-of v0, v0, Landroid/graphics/drawable/ShapeDrawable;
  224. if-eqz v0, :cond_0
  225. .line 123
  226. invoke-virtual {p0}, Landroid/support/v4/widget/CircleImageView;->getBackground()Landroid/graphics/drawable/Drawable;
  227. move-result-object v0
  228. check-cast v0, Landroid/graphics/drawable/ShapeDrawable;
  229. invoke-virtual {v0}, Landroid/graphics/drawable/ShapeDrawable;->getPaint()Landroid/graphics/Paint;
  230. move-result-object v0
  231. invoke-virtual {v0, p1}, Landroid/graphics/Paint;->setColor(I)V
  232. .line 125
  233. :cond_0
  234. return-void
  235. .end method
  236. .method public setBackgroundColorRes(I)V
  237. .locals 1
  238. .param p1, "colorRes" # I
  239. .prologue
  240. .line 117
  241. invoke-virtual {p0}, Landroid/support/v4/widget/CircleImageView;->getContext()Landroid/content/Context;
  242. move-result-object v0
  243. invoke-virtual {v0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
  244. move-result-object v0
  245. invoke-virtual {v0, p1}, Landroid/content/res/Resources;->getColor(I)I
  246. move-result v0
  247. invoke-virtual {p0, v0}, Landroid/support/v4/widget/CircleImageView;->setBackgroundColor(I)V
  248. .line 118
  249. return-void
  250. .end method