.class public Lcom/itheima/wheelpicker/WheelPicker; .super Landroid/view/View; .source "WheelPicker.java" # interfaces .implements Lcom/itheima/wheelpicker/IDebug; .implements Lcom/itheima/wheelpicker/IWheelPicker; .implements Ljava/lang/Runnable; # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/itheima/wheelpicker/WheelPicker$OnWheelChangeListener;, Lcom/itheima/wheelpicker/WheelPicker$OnItemSelectedListener; } .end annotation # static fields .field public static final ALIGN_CENTER:I = 0x0 .field public static final ALIGN_LEFT:I = 0x1 .field public static final ALIGN_RIGHT:I = 0x2 .field public static final SCROLL_STATE_DRAGGING:I = 0x1 .field public static final SCROLL_STATE_IDLE:I = 0x0 .field public static final SCROLL_STATE_SCROLLING:I = 0x2 .field private static final TAG:Ljava/lang/String; = "WheelPicker" # instance fields .field private hasAtmospheric:Z .field private hasCurtain:Z .field private hasIndicator:Z .field private hasSameWidth:Z .field private isClick:Z .field private isCurved:Z .field private isCyclic:Z .field private isDebug:Z .field public isForceFinishScroll:Z .field private mCamera:Landroid/graphics/Camera; .field private mCurrentItemPosition:I .field private mCurtainColor:I .field private mData:Ljava/util/List; .field private mDownPointY:I .field private mDrawnCenterX:I .field private mDrawnCenterY:I .field private mDrawnItemCount:I .field private mHalfDrawnItemCount:I .field private mHalfItemHeight:I .field private mHalfWheelHeight:I .field private final mHandler:Landroid/os/Handler; .field private mIndicatorColor:I .field private mIndicatorSize:I .field private mItemAlign:I .field private mItemHeight:I .field private mItemSpace:I .field private mItemTextColor:I .field private mItemTextSize:I .field private mLastPointY:I .field private mMatrixDepth:Landroid/graphics/Matrix; .field private mMatrixRotate:Landroid/graphics/Matrix; .field private mMaxFlingY:I .field private mMaxWidthText:Ljava/lang/String; .field private mMaximumVelocity:I .field private mMinFlingY:I .field private mMinimumVelocity:I .field private mOnItemSelectedListener:Lcom/itheima/wheelpicker/WheelPicker$OnItemSelectedListener; .field private mOnWheelChangeListener:Lcom/itheima/wheelpicker/WheelPicker$OnWheelChangeListener; .field private mPaint:Landroid/graphics/Paint; .field private mRectCurrentItem:Landroid/graphics/Rect; .field private mRectDrawn:Landroid/graphics/Rect; .field private mRectIndicatorFoot:Landroid/graphics/Rect; .field private mRectIndicatorHead:Landroid/graphics/Rect; .field private mScrollOffsetY:I .field private mScroller:Landroid/widget/Scroller; .field private mSelectedItemPosition:I .field private mSelectedItemTextColor:I .field private mTextMaxHeight:I .field private mTextMaxWidth:I .field private mTextMaxWidthPosition:I .field private mTouchSlop:I .field private mTracker:Landroid/view/VelocityTracker; .field private mVisibleItemCount:I .field private mWheelCenterX:I .field private mWheelCenterY:I # direct methods .method static constructor ()V .registers 0 return-void .end method .method public constructor (Landroid/content/Context;)V .registers 3 const/4 v0, 0x0 .line 280 invoke-direct {p0, p1, v0}, Lcom/itheima/wheelpicker/WheelPicker;->(Landroid/content/Context;Landroid/util/AttributeSet;)V return-void .end method .method public constructor (Landroid/content/Context;Landroid/util/AttributeSet;)V .registers 6 .line 284 invoke-direct {p0, p1, p2}, Landroid/view/View;->(Landroid/content/Context;Landroid/util/AttributeSet;)V .line 56 new-instance v0, Landroid/os/Handler; invoke-direct {v0}, Landroid/os/Handler;->()V iput-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mHandler:Landroid/os/Handler; const/16 v0, 0x32 .line 188 iput v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mMinimumVelocity:I const/16 v0, 0x1f40 iput v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mMaximumVelocity:I const/16 v0, 0x8 .line 223 iput v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mTouchSlop:I .line 286 sget-object v0, Lcom/itheima/wheelpicker/R$styleable;->WheelPicker:[I invoke-virtual {p1, p2, v0}, Landroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray; move-result-object p1 .line 287 sget p2, Lcom/itheima/wheelpicker/R$styleable;->WheelPicker_wheel_data:I const/4 v0, 0x0 invoke-virtual {p1, p2, v0}, Landroid/content/res/TypedArray;->getResourceId(II)I move-result p2 .line 288 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->getResources()Landroid/content/res/Resources; move-result-object v1 if-nez p2, :cond_2b .line 289 sget p2, Lcom/itheima/wheelpicker/R$array;->WheelArrayDefault:I :cond_2b invoke-virtual {v1, p2}, Landroid/content/res/Resources;->getStringArray(I)[Ljava/lang/String; move-result-object p2 .line 288 invoke-static {p2}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List; move-result-object p2 iput-object p2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mData:Ljava/util/List; .line 290 sget p2, Lcom/itheima/wheelpicker/R$styleable;->WheelPicker_wheel_item_text_size:I .line 291 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->getResources()Landroid/content/res/Resources; move-result-object v1 sget v2, Lcom/itheima/wheelpicker/R$dimen;->WheelItemTextSize:I invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getDimensionPixelSize(I)I move-result v1 .line 290 invoke-virtual {p1, p2, v1}, Landroid/content/res/TypedArray;->getDimensionPixelSize(II)I move-result p2 iput p2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mItemTextSize:I .line 292 sget p2, Lcom/itheima/wheelpicker/R$styleable;->WheelPicker_wheel_visible_item_count:I const/4 v1, 0x7 invoke-virtual {p1, p2, v1}, Landroid/content/res/TypedArray;->getInt(II)I move-result p2 iput p2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mVisibleItemCount:I .line 293 sget p2, Lcom/itheima/wheelpicker/R$styleable;->WheelPicker_wheel_selected_item_position:I invoke-virtual {p1, p2, v0}, Landroid/content/res/TypedArray;->getInt(II)I move-result p2 iput p2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mSelectedItemPosition:I .line 294 sget p2, Lcom/itheima/wheelpicker/R$styleable;->WheelPicker_wheel_same_width:I invoke-virtual {p1, p2, v0}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z move-result p2 iput-boolean p2, p0, Lcom/itheima/wheelpicker/WheelPicker;->hasSameWidth:Z .line 295 sget p2, Lcom/itheima/wheelpicker/R$styleable;->WheelPicker_wheel_maximum_width_text_position:I const/4 v1, -0x1 .line 296 invoke-virtual {p1, p2, v1}, Landroid/content/res/TypedArray;->getInt(II)I move-result p2 iput p2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mTextMaxWidthPosition:I .line 297 sget p2, Lcom/itheima/wheelpicker/R$styleable;->WheelPicker_wheel_maximum_width_text:I invoke-virtual {p1, p2}, Landroid/content/res/TypedArray;->getString(I)Ljava/lang/String; move-result-object p2 iput-object p2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mMaxWidthText:Ljava/lang/String; .line 298 sget p2, Lcom/itheima/wheelpicker/R$styleable;->WheelPicker_wheel_selected_item_text_color:I .line 299 invoke-virtual {p1, p2, v1}, Landroid/content/res/TypedArray;->getColor(II)I move-result p2 iput p2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mSelectedItemTextColor:I .line 300 sget p2, Lcom/itheima/wheelpicker/R$styleable;->WheelPicker_wheel_item_text_color:I const v1, -0x777778 invoke-virtual {p1, p2, v1}, Landroid/content/res/TypedArray;->getColor(II)I move-result p2 iput p2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mItemTextColor:I .line 301 sget p2, Lcom/itheima/wheelpicker/R$styleable;->WheelPicker_wheel_item_space:I .line 302 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->getResources()Landroid/content/res/Resources; move-result-object v1 sget v2, Lcom/itheima/wheelpicker/R$dimen;->WheelItemSpace:I invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getDimensionPixelSize(I)I move-result v1 .line 301 invoke-virtual {p1, p2, v1}, Landroid/content/res/TypedArray;->getDimensionPixelSize(II)I move-result p2 iput p2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mItemSpace:I .line 303 sget p2, Lcom/itheima/wheelpicker/R$styleable;->WheelPicker_wheel_cyclic:I invoke-virtual {p1, p2, v0}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z move-result p2 iput-boolean p2, p0, Lcom/itheima/wheelpicker/WheelPicker;->isCyclic:Z .line 304 sget p2, Lcom/itheima/wheelpicker/R$styleable;->WheelPicker_wheel_indicator:I invoke-virtual {p1, p2, v0}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z move-result p2 iput-boolean p2, p0, Lcom/itheima/wheelpicker/WheelPicker;->hasIndicator:Z .line 305 sget p2, Lcom/itheima/wheelpicker/R$styleable;->WheelPicker_wheel_indicator_color:I const v1, -0x11cccd invoke-virtual {p1, p2, v1}, Landroid/content/res/TypedArray;->getColor(II)I move-result p2 iput p2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mIndicatorColor:I .line 306 sget p2, Lcom/itheima/wheelpicker/R$styleable;->WheelPicker_wheel_indicator_size:I .line 307 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->getResources()Landroid/content/res/Resources; move-result-object v1 sget v2, Lcom/itheima/wheelpicker/R$dimen;->WheelIndicatorSize:I invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getDimensionPixelSize(I)I move-result v1 .line 306 invoke-virtual {p1, p2, v1}, Landroid/content/res/TypedArray;->getDimensionPixelSize(II)I move-result p2 iput p2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mIndicatorSize:I .line 308 sget p2, Lcom/itheima/wheelpicker/R$styleable;->WheelPicker_wheel_curtain:I invoke-virtual {p1, p2, v0}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z move-result p2 iput-boolean p2, p0, Lcom/itheima/wheelpicker/WheelPicker;->hasCurtain:Z .line 309 sget p2, Lcom/itheima/wheelpicker/R$styleable;->WheelPicker_wheel_curtain_color:I const v1, -0x77000001 invoke-virtual {p1, p2, v1}, Landroid/content/res/TypedArray;->getColor(II)I move-result p2 iput p2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mCurtainColor:I .line 310 sget p2, Lcom/itheima/wheelpicker/R$styleable;->WheelPicker_wheel_atmospheric:I invoke-virtual {p1, p2, v0}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z move-result p2 iput-boolean p2, p0, Lcom/itheima/wheelpicker/WheelPicker;->hasAtmospheric:Z .line 311 sget p2, Lcom/itheima/wheelpicker/R$styleable;->WheelPicker_wheel_curved:I invoke-virtual {p1, p2, v0}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z move-result p2 iput-boolean p2, p0, Lcom/itheima/wheelpicker/WheelPicker;->isCurved:Z .line 312 sget p2, Lcom/itheima/wheelpicker/R$styleable;->WheelPicker_wheel_item_align:I invoke-virtual {p1, p2, v0}, Landroid/content/res/TypedArray;->getInt(II)I move-result p2 iput p2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mItemAlign:I .line 313 invoke-virtual {p1}, Landroid/content/res/TypedArray;->recycle()V .line 317 invoke-direct {p0}, Lcom/itheima/wheelpicker/WheelPicker;->updateVisibleItemCount()V .line 319 new-instance p1, Landroid/graphics/Paint; const/16 p2, 0x45 invoke-direct {p1, p2}, Landroid/graphics/Paint;->(I)V iput-object p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mPaint:Landroid/graphics/Paint; .line 320 iget p2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mItemTextSize:I int-to-float p2, p2 invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setTextSize(F)V .line 325 invoke-direct {p0}, Lcom/itheima/wheelpicker/WheelPicker;->updateItemTextAlign()V .line 329 invoke-direct {p0}, Lcom/itheima/wheelpicker/WheelPicker;->computeTextSize()V .line 331 new-instance p1, Landroid/widget/Scroller; invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->getContext()Landroid/content/Context; move-result-object p2 invoke-direct {p1, p2}, Landroid/widget/Scroller;->(Landroid/content/Context;)V iput-object p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mScroller:Landroid/widget/Scroller; .line 334 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->getContext()Landroid/content/Context; move-result-object p1 invoke-static {p1}, Landroid/view/ViewConfiguration;->get(Landroid/content/Context;)Landroid/view/ViewConfiguration; move-result-object p1 .line 335 invoke-virtual {p1}, Landroid/view/ViewConfiguration;->getScaledMinimumFlingVelocity()I move-result p2 iput p2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mMinimumVelocity:I .line 336 invoke-virtual {p1}, Landroid/view/ViewConfiguration;->getScaledMaximumFlingVelocity()I move-result p2 iput p2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mMaximumVelocity:I .line 337 invoke-virtual {p1}, Landroid/view/ViewConfiguration;->getScaledTouchSlop()I move-result p1 iput p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mTouchSlop:I .line 339 new-instance p1, Landroid/graphics/Rect; invoke-direct {p1}, Landroid/graphics/Rect;->()V iput-object p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mRectDrawn:Landroid/graphics/Rect; .line 341 new-instance p1, Landroid/graphics/Rect; invoke-direct {p1}, Landroid/graphics/Rect;->()V iput-object p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mRectIndicatorHead:Landroid/graphics/Rect; .line 342 new-instance p1, Landroid/graphics/Rect; invoke-direct {p1}, Landroid/graphics/Rect;->()V iput-object p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mRectIndicatorFoot:Landroid/graphics/Rect; .line 344 new-instance p1, Landroid/graphics/Rect; invoke-direct {p1}, Landroid/graphics/Rect;->()V iput-object p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mRectCurrentItem:Landroid/graphics/Rect; .line 346 new-instance p1, Landroid/graphics/Camera; invoke-direct {p1}, Landroid/graphics/Camera;->()V iput-object p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mCamera:Landroid/graphics/Camera; .line 348 new-instance p1, Landroid/graphics/Matrix; invoke-direct {p1}, Landroid/graphics/Matrix;->()V iput-object p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mMatrixRotate:Landroid/graphics/Matrix; .line 349 new-instance p1, Landroid/graphics/Matrix; invoke-direct {p1}, Landroid/graphics/Matrix;->()V iput-object p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mMatrixDepth:Landroid/graphics/Matrix; return-void .end method .method private computeCurrentItemRect()V .registers 7 .line 518 iget-boolean v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->hasCurtain:Z if-nez v0, :cond_a iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mSelectedItemTextColor:I const/4 v1, -0x1 if-ne v0, v1, :cond_a return-void .line 519 :cond_a iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mRectCurrentItem:Landroid/graphics/Rect; iget-object v1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mRectDrawn:Landroid/graphics/Rect; iget v1, v1, Landroid/graphics/Rect;->left:I iget v2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mWheelCenterY:I iget v3, p0, Lcom/itheima/wheelpicker/WheelPicker;->mHalfItemHeight:I sub-int/2addr v2, v3 iget-object v3, p0, Lcom/itheima/wheelpicker/WheelPicker;->mRectDrawn:Landroid/graphics/Rect; iget v3, v3, Landroid/graphics/Rect;->right:I iget v4, p0, Lcom/itheima/wheelpicker/WheelPicker;->mWheelCenterY:I iget v5, p0, Lcom/itheima/wheelpicker/WheelPicker;->mHalfItemHeight:I add-int/2addr v4, v5 invoke-virtual {v0, v1, v2, v3, v4}, Landroid/graphics/Rect;->set(IIII)V return-void .end method .method private computeDepth(I)I .registers 8 .line 664 iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mHalfWheelHeight:I int-to-double v0, v0 int-to-double v2, p1 invoke-static {v2, v3}, Ljava/lang/Math;->toRadians(D)D move-result-wide v2 invoke-static {v2, v3}, Ljava/lang/Math;->cos(D)D move-result-wide v2 iget p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mHalfWheelHeight:I int-to-double v4, p1 mul-double/2addr v2, v4 sub-double/2addr v0, v2 double-to-int p1, v0 return p1 .end method .method private computeDistanceToEndPoint(I)I .registers 4 .line 755 invoke-static {p1}, Ljava/lang/Math;->abs(I)I move-result v0 iget v1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mHalfItemHeight:I if-le v0, v1, :cond_14 .line 756 iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mScrollOffsetY:I if-gez v0, :cond_11 .line 757 iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mItemHeight:I neg-int v0, v0 :goto_f sub-int/2addr v0, p1 return v0 .line 759 :cond_11 iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mItemHeight:I goto :goto_f :cond_14 neg-int p1, p1 return p1 .end method .method private computeDrawnCenter()V .registers 4 .line 485 iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mItemAlign:I const/4 v1, 0x1 if-eq v0, v1, :cond_14 const/4 v1, 0x2 if-eq v0, v1, :cond_d .line 493 iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mWheelCenterX:I iput v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mDrawnCenterX:I goto :goto_1a .line 490 :cond_d iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mRectDrawn:Landroid/graphics/Rect; iget v0, v0, Landroid/graphics/Rect;->right:I iput v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mDrawnCenterX:I goto :goto_1a .line 487 :cond_14 iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mRectDrawn:Landroid/graphics/Rect; iget v0, v0, Landroid/graphics/Rect;->left:I iput v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mDrawnCenterX:I .line 496 :goto_1a iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mWheelCenterY:I int-to-float v0, v0 iget-object v1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mPaint:Landroid/graphics/Paint; invoke-virtual {v1}, Landroid/graphics/Paint;->ascent()F move-result v1 iget-object v2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mPaint:Landroid/graphics/Paint; invoke-virtual {v2}, Landroid/graphics/Paint;->descent()F move-result v2 add-float/2addr v1, v2 const/high16 v2, 0x40000000 # 2.0f div-float/2addr v1, v2 sub-float/2addr v0, v1 float-to-int v0, v0 iput v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mDrawnCenterY:I return-void .end method .method private computeFlingLimitY()V .registers 4 .line 500 iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mSelectedItemPosition:I iget v1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mItemHeight:I mul-int/2addr v0, v1 .line 501 iget-boolean v2, p0, Lcom/itheima/wheelpicker/WheelPicker;->isCyclic:Z if-eqz v2, :cond_c const/high16 v1, -0x80000000 goto :goto_17 :cond_c neg-int v1, v1 .line 502 iget-object v2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mData:Ljava/util/List; invoke-interface {v2}, Ljava/util/List;->size()I move-result v2 add-int/lit8 v2, v2, -0x1 mul-int/2addr v1, v2 add-int/2addr v1, v0 :goto_17 iput v1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mMinFlingY:I .line 503 iget-boolean v1, p0, Lcom/itheima/wheelpicker/WheelPicker;->isCyclic:Z if-eqz v1, :cond_20 const v0, 0x7fffffff :cond_20 iput v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mMaxFlingY:I return-void .end method .method private computeIndicatorRect()V .registers 8 .line 507 iget-boolean v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->hasIndicator:Z if-nez v0, :cond_5 return-void .line 508 :cond_5 iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mIndicatorSize:I div-int/lit8 v0, v0, 0x2 .line 509 iget v1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mWheelCenterY:I iget v2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mHalfItemHeight:I add-int v3, v1, v2 sub-int/2addr v1, v2 .line 511 iget-object v2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mRectIndicatorHead:Landroid/graphics/Rect; iget-object v4, p0, Lcom/itheima/wheelpicker/WheelPicker;->mRectDrawn:Landroid/graphics/Rect; iget v4, v4, Landroid/graphics/Rect;->left:I sub-int v5, v3, v0 iget-object v6, p0, Lcom/itheima/wheelpicker/WheelPicker;->mRectDrawn:Landroid/graphics/Rect; iget v6, v6, Landroid/graphics/Rect;->right:I add-int/2addr v3, v0 invoke-virtual {v2, v4, v5, v6, v3}, Landroid/graphics/Rect;->set(IIII)V .line 513 iget-object v2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mRectIndicatorFoot:Landroid/graphics/Rect; iget-object v3, p0, Lcom/itheima/wheelpicker/WheelPicker;->mRectDrawn:Landroid/graphics/Rect; iget v3, v3, Landroid/graphics/Rect;->left:I sub-int v4, v1, v0 iget-object v5, p0, Lcom/itheima/wheelpicker/WheelPicker;->mRectDrawn:Landroid/graphics/Rect; iget v5, v5, Landroid/graphics/Rect;->right:I add-int/2addr v1, v0 invoke-virtual {v2, v3, v4, v5, v1}, Landroid/graphics/Rect;->set(IIII)V return-void .end method .method private computeSpace(I)I .registers 6 int-to-double v0, p1 .line 660 invoke-static {v0, v1}, Ljava/lang/Math;->toRadians(D)D move-result-wide v0 invoke-static {v0, v1}, Ljava/lang/Math;->sin(D)D move-result-wide v0 iget p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mHalfWheelHeight:I int-to-double v2, p1 mul-double/2addr v0, v2 double-to-int p1, v0 return p1 .end method .method private computeTextSize()V .registers 4 const/4 v0, 0x0 .line 365 iput v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mTextMaxHeight:I iput v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mTextMaxWidth:I .line 366 iget-boolean v1, p0, Lcom/itheima/wheelpicker/WheelPicker;->hasSameWidth:Z if-eqz v1, :cond_1d .line 367 iget-object v1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mPaint:Landroid/graphics/Paint; iget-object v2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mData:Ljava/util/List; invoke-interface {v2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v0 invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String; move-result-object v0 invoke-virtual {v1, v0}, Landroid/graphics/Paint;->measureText(Ljava/lang/String;)F move-result v0 float-to-int v0, v0 iput v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mTextMaxWidth:I goto :goto_73 .line 368 :cond_1d iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mTextMaxWidthPosition:I invoke-direct {p0, v0}, Lcom/itheima/wheelpicker/WheelPicker;->isPosInRang(I)Z move-result v0 if-eqz v0, :cond_3b .line 369 iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mPaint:Landroid/graphics/Paint; iget-object v1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mData:Ljava/util/List; iget v2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mTextMaxWidthPosition:I .line 370 invoke-interface {v1, v2}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v1 invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Landroid/graphics/Paint;->measureText(Ljava/lang/String;)F move-result v0 float-to-int v0, v0 iput v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mTextMaxWidth:I goto :goto_73 .line 371 :cond_3b iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mMaxWidthText:Ljava/lang/String; invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z move-result v0 if-nez v0, :cond_4f .line 372 iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mPaint:Landroid/graphics/Paint; iget-object v1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mMaxWidthText:Ljava/lang/String; invoke-virtual {v0, v1}, Landroid/graphics/Paint;->measureText(Ljava/lang/String;)F move-result v0 float-to-int v0, v0 iput v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mTextMaxWidth:I goto :goto_73 .line 374 :cond_4f iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mData:Ljava/util/List; invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator; move-result-object v0 :goto_55 invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_73 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 .line 375 invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String; move-result-object v1 .line 376 iget-object v2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mPaint:Landroid/graphics/Paint; invoke-virtual {v2, v1}, Landroid/graphics/Paint;->measureText(Ljava/lang/String;)F move-result v1 float-to-int v1, v1 .line 377 iget v2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mTextMaxWidth:I invoke-static {v2, v1}, Ljava/lang/Math;->max(II)I move-result v1 iput v1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mTextMaxWidth:I goto :goto_55 .line 380 :cond_73 :goto_73 iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mPaint:Landroid/graphics/Paint; invoke-virtual {v0}, Landroid/graphics/Paint;->getFontMetrics()Landroid/graphics/Paint$FontMetrics; move-result-object v0 .line 381 iget v1, v0, Landroid/graphics/Paint$FontMetrics;->bottom:F iget v0, v0, Landroid/graphics/Paint$FontMetrics;->top:F sub-float/2addr v1, v0 float-to-int v0, v1 iput v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mTextMaxHeight:I return-void .end method .method private isPosInRang(I)Z .registers 3 if-ltz p1, :cond_c .line 656 iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mData:Ljava/util/List; invoke-interface {v0}, Ljava/util/List;->size()I move-result v0 if-ge p1, v0, :cond_c const/4 p1, 0x1 goto :goto_d :cond_c const/4 p1, 0x0 :goto_d return p1 .end method .method private measureSize(III)I .registers 5 const/high16 v0, 0x40000000 # 2.0f if-ne p1, v0, :cond_5 goto :goto_f :cond_5 const/high16 v0, -0x80000000 if-ne p1, v0, :cond_e .line 441 invoke-static {p3, p2}, Ljava/lang/Math;->min(II)I move-result p2 goto :goto_f :cond_e move p2, p3 :goto_f return p2 .end method .method private updateItemTextAlign()V .registers 3 .line 385 iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mItemAlign:I const/4 v1, 0x1 if-eq v0, v1, :cond_18 const/4 v1, 0x2 if-eq v0, v1, :cond_10 .line 393 iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mPaint:Landroid/graphics/Paint; sget-object v1, Landroid/graphics/Paint$Align;->CENTER:Landroid/graphics/Paint$Align; invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setTextAlign(Landroid/graphics/Paint$Align;)V goto :goto_1f .line 390 :cond_10 iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mPaint:Landroid/graphics/Paint; sget-object v1, Landroid/graphics/Paint$Align;->RIGHT:Landroid/graphics/Paint$Align; invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setTextAlign(Landroid/graphics/Paint$Align;)V goto :goto_1f .line 387 :cond_18 iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mPaint:Landroid/graphics/Paint; sget-object v1, Landroid/graphics/Paint$Align;->LEFT:Landroid/graphics/Paint$Align; invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setTextAlign(Landroid/graphics/Paint$Align;)V :goto_1f return-void .end method .method private updateVisibleItemCount()V .registers 4 .line 353 iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mVisibleItemCount:I const/4 v1, 0x2 if-lt v0, v1, :cond_16 .line 358 rem-int/lit8 v2, v0, 0x2 if-nez v2, :cond_d add-int/lit8 v0, v0, 0x1 .line 359 iput v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mVisibleItemCount:I .line 360 :cond_d iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mVisibleItemCount:I add-int/2addr v0, v1 iput v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mDrawnItemCount:I .line 361 div-int/2addr v0, v1 iput v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mHalfDrawnItemCount:I return-void .line 354 :cond_16 new-instance v0, Ljava/lang/ArithmeticException; const-string v1, "Wheel\'s visible item count can not be less than 2!" invoke-direct {v0, v1}, Ljava/lang/ArithmeticException;->(Ljava/lang/String;)V throw v0 .end method # virtual methods .method public getCurrentItemPosition()I .registers 2 .line 843 iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mCurrentItemPosition:I return v0 .end method .method public getCurtainColor()I .registers 2 .line 1016 iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mCurtainColor:I return v0 .end method .method public getData()Ljava/util/List; .registers 2 .line 848 iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mData:Ljava/util/List; return-object v0 .end method .method public getIndicatorColor()I .registers 2 .line 993 iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mIndicatorColor:I return v0 .end method .method public getIndicatorSize()I .registers 2 .line 981 iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mIndicatorSize:I return v0 .end method .method public getItemAlign()I .registers 2 .line 1050 iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mItemAlign:I return v0 .end method .method public getItemSpace()I .registers 2 .line 957 iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mItemSpace:I return v0 .end method .method public getItemTextColor()I .registers 2 .line 932 iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mItemTextColor:I return v0 .end method .method public getItemTextSize()I .registers 2 .line 943 iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mItemTextSize:I return v0 .end method .method public getMaximumWidthText()Ljava/lang/String; .registers 2 .line 889 iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mMaxWidthText:Ljava/lang/String; return-object v0 .end method .method public getMaximumWidthTextPosition()I .registers 2 .line 904 iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mTextMaxWidthPosition:I return v0 .end method .method public getSelectedItemPosition()I .registers 2 .line 826 iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mSelectedItemPosition:I return v0 .end method .method public getSelectedItemTextColor()I .registers 2 .line 920 iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mSelectedItemTextColor:I return v0 .end method .method public getTypeface()Landroid/graphics/Typeface; .registers 2 .line 1063 iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mPaint:Landroid/graphics/Paint; if-eqz v0, :cond_9 .line 1064 invoke-virtual {v0}, Landroid/graphics/Paint;->getTypeface()Landroid/graphics/Typeface; move-result-object v0 return-object v0 :cond_9 const/4 v0, 0x0 return-object v0 .end method .method public getVisibleItemCount()I .registers 2 .line 797 iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mVisibleItemCount:I return v0 .end method .method public hasAtmospheric()Z .registers 2 .line 1033 iget-boolean v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->hasAtmospheric:Z return v0 .end method .method public hasCurtain()Z .registers 2 .line 1011 iget-boolean v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->hasCurtain:Z return v0 .end method .method public hasIndicator()Z .registers 2 .line 976 iget-boolean v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->hasIndicator:Z return v0 .end method .method public hasSameWidth()Z .registers 2 .line 879 iget-boolean v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->hasSameWidth:Z return v0 .end method .method public isCurved()Z .registers 2 .line 1038 iget-boolean v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->isCurved:Z return v0 .end method .method public isCyclic()Z .registers 2 .line 809 iget-boolean v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->isCyclic:Z return v0 .end method .method protected onDraw(Landroid/graphics/Canvas;)V .registers 18 move-object/from16 v0, p0 move-object/from16 v1, p1 .line 525 iget-object v2, v0, Lcom/itheima/wheelpicker/WheelPicker;->mOnWheelChangeListener:Lcom/itheima/wheelpicker/WheelPicker$OnWheelChangeListener; if-eqz v2, :cond_d .line 526 iget v3, v0, Lcom/itheima/wheelpicker/WheelPicker;->mScrollOffsetY:I invoke-interface {v2, v3}, Lcom/itheima/wheelpicker/WheelPicker$OnWheelChangeListener;->onWheelScrolled(I)V .line 527 :cond_d iget v2, v0, Lcom/itheima/wheelpicker/WheelPicker;->mScrollOffsetY:I neg-int v2, v2 iget v3, v0, Lcom/itheima/wheelpicker/WheelPicker;->mItemHeight:I div-int/2addr v2, v3 iget v3, v0, Lcom/itheima/wheelpicker/WheelPicker;->mHalfDrawnItemCount:I sub-int/2addr v2, v3 .line 528 iget v4, v0, Lcom/itheima/wheelpicker/WheelPicker;->mSelectedItemPosition:I add-int/2addr v4, v2 neg-int v3, v3 .line 530 :goto_1a iget v5, v0, Lcom/itheima/wheelpicker/WheelPicker;->mSelectedItemPosition:I add-int/2addr v5, v2 iget v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->mDrawnItemCount:I add-int/2addr v5, v6 if-ge v4, v5, :cond_1d6 .line 533 iget-boolean v5, v0, Lcom/itheima/wheelpicker/WheelPicker;->isCyclic:Z if-eqz v5, :cond_42 .line 534 iget-object v5, v0, Lcom/itheima/wheelpicker/WheelPicker;->mData:Ljava/util/List; invoke-interface {v5}, Ljava/util/List;->size()I move-result v5 rem-int v5, v4, v5 if-gez v5, :cond_37 .line 535 iget-object v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->mData:Ljava/util/List; invoke-interface {v6}, Ljava/util/List;->size()I move-result v6 add-int/2addr v5, v6 .line 536 :cond_37 iget-object v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->mData:Ljava/util/List; invoke-interface {v6, v5}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v5 invoke-static {v5}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String; move-result-object v5 goto :goto_55 .line 538 :cond_42 invoke-direct {v0, v4}, Lcom/itheima/wheelpicker/WheelPicker;->isPosInRang(I)Z move-result v5 if-eqz v5, :cond_53 .line 539 iget-object v5, v0, Lcom/itheima/wheelpicker/WheelPicker;->mData:Ljava/util/List; invoke-interface {v5, v4}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v5 invoke-static {v5}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String; move-result-object v5 goto :goto_55 .line 538 :cond_53 const-string v5, "" .line 541 :goto_55 iget-object v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->mPaint:Landroid/graphics/Paint; iget v7, v0, Lcom/itheima/wheelpicker/WheelPicker;->mItemTextColor:I invoke-virtual {v6, v7}, Landroid/graphics/Paint;->setColor(I)V .line 542 iget-object v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->mPaint:Landroid/graphics/Paint; iget v7, v0, Lcom/itheima/wheelpicker/WheelPicker;->mItemTextSize:I int-to-float v7, v7 invoke-virtual {v6, v7}, Landroid/graphics/Paint;->setTextSize(F)V .line 543 iget-object v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->mPaint:Landroid/graphics/Paint; sget-object v7, Landroid/graphics/Paint$Style;->FILL:Landroid/graphics/Paint$Style; invoke-virtual {v6, v7}, Landroid/graphics/Paint;->setStyle(Landroid/graphics/Paint$Style;)V .line 544 iget-object v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->mPaint:Landroid/graphics/Paint; const/high16 v7, 0x43480000 # 200.0f const/4 v8, 0x0 const/4 v9, 0x1 invoke-virtual {v6, v5, v9, v7, v8}, Landroid/graphics/Paint;->breakText(Ljava/lang/String;ZF[F)I .line 545 iget v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->mDrawnCenterY:I iget v7, v0, Lcom/itheima/wheelpicker/WheelPicker;->mItemHeight:I mul-int v8, v3, v7 add-int/2addr v8, v6 iget v10, v0, Lcom/itheima/wheelpicker/WheelPicker;->mScrollOffsetY:I rem-int/2addr v10, v7 add-int/2addr v8, v10 .line 549 iget-boolean v7, v0, Lcom/itheima/wheelpicker/WheelPicker;->isCurved:Z const/high16 v11, 0x3f800000 # 1.0f if-eqz v7, :cond_12b sub-int v7, v6, v8 .line 552 invoke-static {v7}, Ljava/lang/Math;->abs(I)I move-result v7 sub-int/2addr v6, v7 iget-object v7, v0, Lcom/itheima/wheelpicker/WheelPicker;->mRectDrawn:Landroid/graphics/Rect; iget v7, v7, Landroid/graphics/Rect;->top:I sub-int/2addr v6, v7 int-to-float v6, v6 mul-float/2addr v6, v11 iget v7, v0, Lcom/itheima/wheelpicker/WheelPicker;->mDrawnCenterY:I iget-object v13, v0, Lcom/itheima/wheelpicker/WheelPicker;->mRectDrawn:Landroid/graphics/Rect; iget v13, v13, Landroid/graphics/Rect;->top:I sub-int/2addr v7, v13 int-to-float v7, v7 div-float/2addr v6, v7 .line 558 iget v7, v0, Lcom/itheima/wheelpicker/WheelPicker;->mDrawnCenterY:I if-le v8, v7, :cond_a2 move v7, v9 goto :goto_a7 :cond_a2 if-ge v8, v7, :cond_a6 const/4 v7, -0x1 goto :goto_a7 :cond_a6 const/4 v7, 0x0 :goto_a7 sub-float v6, v11, v6 neg-float v6, v6 const/high16 v13, 0x42b40000 # 90.0f mul-float/2addr v6, v13 int-to-float v7, v7 mul-float/2addr v6, v7 const/high16 v7, -0x3d4c0000 # -90.0f cmpg-float v14, v6, v7 if-gez v14, :cond_b6 move v6, v7 :cond_b6 cmpl-float v7, v6, v13 if-lez v7, :cond_bb goto :goto_bc :cond_bb move v13, v6 :goto_bc float-to-int v6, v13 .line 566 invoke-direct {v0, v6}, Lcom/itheima/wheelpicker/WheelPicker;->computeSpace(I)I move-result v7 .line 568 iget v14, v0, Lcom/itheima/wheelpicker/WheelPicker;->mWheelCenterX:I .line 569 iget v15, v0, Lcom/itheima/wheelpicker/WheelPicker;->mItemAlign:I if-eq v15, v9, :cond_d0 const/4 v12, 0x2 if-eq v15, v12, :cond_cb goto :goto_d4 .line 574 :cond_cb iget-object v12, v0, Lcom/itheima/wheelpicker/WheelPicker;->mRectDrawn:Landroid/graphics/Rect; iget v14, v12, Landroid/graphics/Rect;->right:I goto :goto_d4 .line 571 :cond_d0 iget-object v12, v0, Lcom/itheima/wheelpicker/WheelPicker;->mRectDrawn:Landroid/graphics/Rect; iget v14, v12, Landroid/graphics/Rect;->left:I .line 577 :goto_d4 iget v12, v0, Lcom/itheima/wheelpicker/WheelPicker;->mWheelCenterY:I sub-int/2addr v12, v7 .line 579 iget-object v15, v0, Lcom/itheima/wheelpicker/WheelPicker;->mCamera:Landroid/graphics/Camera; invoke-virtual {v15}, Landroid/graphics/Camera;->save()V .line 580 iget-object v15, v0, Lcom/itheima/wheelpicker/WheelPicker;->mCamera:Landroid/graphics/Camera; invoke-virtual {v15, v13}, Landroid/graphics/Camera;->rotateX(F)V .line 581 iget-object v13, v0, Lcom/itheima/wheelpicker/WheelPicker;->mCamera:Landroid/graphics/Camera; iget-object v15, v0, Lcom/itheima/wheelpicker/WheelPicker;->mMatrixRotate:Landroid/graphics/Matrix; invoke-virtual {v13, v15}, Landroid/graphics/Camera;->getMatrix(Landroid/graphics/Matrix;)V .line 582 iget-object v13, v0, Lcom/itheima/wheelpicker/WheelPicker;->mCamera:Landroid/graphics/Camera; invoke-virtual {v13}, Landroid/graphics/Camera;->restore()V .line 583 iget-object v13, v0, Lcom/itheima/wheelpicker/WheelPicker;->mMatrixRotate:Landroid/graphics/Matrix; neg-int v15, v14 int-to-float v15, v15 neg-int v9, v12 int-to-float v9, v9 invoke-virtual {v13, v15, v9}, Landroid/graphics/Matrix;->preTranslate(FF)Z .line 584 iget-object v13, v0, Lcom/itheima/wheelpicker/WheelPicker;->mMatrixRotate:Landroid/graphics/Matrix; int-to-float v14, v14 int-to-float v12, v12 invoke-virtual {v13, v14, v12}, Landroid/graphics/Matrix;->postTranslate(FF)Z .line 586 iget-object v13, v0, Lcom/itheima/wheelpicker/WheelPicker;->mCamera:Landroid/graphics/Camera; invoke-virtual {v13}, Landroid/graphics/Camera;->save()V .line 587 iget-object v13, v0, Lcom/itheima/wheelpicker/WheelPicker;->mCamera:Landroid/graphics/Camera; invoke-direct {v0, v6}, Lcom/itheima/wheelpicker/WheelPicker;->computeDepth(I)I move-result v6 int-to-float v6, v6 const/4 v10, 0x0 invoke-virtual {v13, v10, v10, v6}, Landroid/graphics/Camera;->translate(FFF)V .line 588 iget-object v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->mCamera:Landroid/graphics/Camera; iget-object v10, v0, Lcom/itheima/wheelpicker/WheelPicker;->mMatrixDepth:Landroid/graphics/Matrix; invoke-virtual {v6, v10}, Landroid/graphics/Camera;->getMatrix(Landroid/graphics/Matrix;)V .line 589 iget-object v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->mCamera:Landroid/graphics/Camera; invoke-virtual {v6}, Landroid/graphics/Camera;->restore()V .line 590 iget-object v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->mMatrixDepth:Landroid/graphics/Matrix; invoke-virtual {v6, v15, v9}, Landroid/graphics/Matrix;->preTranslate(FF)Z .line 591 iget-object v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->mMatrixDepth:Landroid/graphics/Matrix; invoke-virtual {v6, v14, v12}, Landroid/graphics/Matrix;->postTranslate(FF)Z .line 593 iget-object v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->mMatrixRotate:Landroid/graphics/Matrix; iget-object v9, v0, Lcom/itheima/wheelpicker/WheelPicker;->mMatrixDepth:Landroid/graphics/Matrix; invoke-virtual {v6, v9}, Landroid/graphics/Matrix;->postConcat(Landroid/graphics/Matrix;)Z goto :goto_12c :cond_12b const/4 v7, 0x0 .line 595 :goto_12c iget-boolean v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->hasAtmospheric:Z if-eqz v6, :cond_14d .line 596 iget v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->mDrawnCenterY:I sub-int v9, v6, v8 invoke-static {v9}, Ljava/lang/Math;->abs(I)I move-result v9 sub-int/2addr v6, v9 int-to-float v6, v6 mul-float/2addr v6, v11 iget v9, v0, Lcom/itheima/wheelpicker/WheelPicker;->mDrawnCenterY:I int-to-float v9, v9 div-float/2addr v6, v9 const/high16 v9, 0x437f0000 # 255.0f mul-float/2addr v6, v9 float-to-int v6, v6 if-gez v6, :cond_147 const/4 v12, 0x0 goto :goto_148 :cond_147 move v12, v6 .line 599 :goto_148 iget-object v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->mPaint:Landroid/graphics/Paint; invoke-virtual {v6, v12}, Landroid/graphics/Paint;->setAlpha(I)V .line 603 :cond_14d iget-boolean v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->isCurved:Z if-eqz v6, :cond_155 iget v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->mDrawnCenterY:I sub-int v8, v6, v7 .line 607 :cond_155 iget v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->mSelectedItemTextColor:I const/4 v7, -0x1 if-eq v6, v7, :cond_1b3 .line 608 invoke-virtual/range {p1 .. p1}, Landroid/graphics/Canvas;->save()I .line 609 iget-boolean v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->isCurved:Z if-eqz v6, :cond_166 iget-object v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->mMatrixRotate:Landroid/graphics/Matrix; invoke-virtual {v1, v6}, Landroid/graphics/Canvas;->concat(Landroid/graphics/Matrix;)V .line 610 :cond_166 iget-object v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->mRectCurrentItem:Landroid/graphics/Rect; sget-object v7, Landroid/graphics/Region$Op;->DIFFERENCE:Landroid/graphics/Region$Op; invoke-virtual {v1, v6, v7}, Landroid/graphics/Canvas;->clipRect(Landroid/graphics/Rect;Landroid/graphics/Region$Op;)Z .line 611 iget v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->mDrawnCenterX:I int-to-float v6, v6 int-to-float v7, v8 iget-object v8, v0, Lcom/itheima/wheelpicker/WheelPicker;->mPaint:Landroid/graphics/Paint; invoke-virtual {v1, v5, v6, v7, v8}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V .line 612 invoke-virtual/range {p1 .. p1}, Landroid/graphics/Canvas;->restore()V .line 614 iget-object v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->mPaint:Landroid/graphics/Paint; iget v8, v0, Lcom/itheima/wheelpicker/WheelPicker;->mSelectedItemTextColor:I invoke-virtual {v6, v8}, Landroid/graphics/Paint;->setColor(I)V .line 615 iget-object v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->mPaint:Landroid/graphics/Paint; sget-object v8, Landroid/graphics/Typeface;->DEFAULT:Landroid/graphics/Typeface; const/4 v9, 0x1 invoke-static {v8, v9}, Landroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface; move-result-object v8 invoke-virtual {v6, v8}, Landroid/graphics/Paint;->setTypeface(Landroid/graphics/Typeface;)Landroid/graphics/Typeface; .line 616 iget-object v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->mPaint:Landroid/graphics/Paint; iget v8, v0, Lcom/itheima/wheelpicker/WheelPicker;->mItemTextSize:I add-int/lit8 v8, v8, 0xf int-to-float v8, v8 invoke-virtual {v6, v8}, Landroid/graphics/Paint;->setTextSize(F)V .line 617 invoke-virtual/range {p1 .. p1}, Landroid/graphics/Canvas;->save()I .line 618 iget-boolean v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->isCurved:Z if-eqz v6, :cond_1a2 iget-object v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->mMatrixRotate:Landroid/graphics/Matrix; invoke-virtual {v1, v6}, Landroid/graphics/Canvas;->concat(Landroid/graphics/Matrix;)V .line 619 :cond_1a2 iget-object v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->mRectCurrentItem:Landroid/graphics/Rect; invoke-virtual {v1, v6}, Landroid/graphics/Canvas;->clipRect(Landroid/graphics/Rect;)Z .line 620 iget v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->mDrawnCenterX:I int-to-float v6, v6 iget-object v8, v0, Lcom/itheima/wheelpicker/WheelPicker;->mPaint:Landroid/graphics/Paint; invoke-virtual {v1, v5, v6, v7, v8}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V .line 621 invoke-virtual/range {p1 .. p1}, Landroid/graphics/Canvas;->restore()V goto :goto_1d0 .line 623 :cond_1b3 invoke-virtual/range {p1 .. p1}, Landroid/graphics/Canvas;->save()I .line 624 iget-object v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->mRectDrawn:Landroid/graphics/Rect; invoke-virtual {v1, v6}, Landroid/graphics/Canvas;->clipRect(Landroid/graphics/Rect;)Z .line 625 iget-boolean v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->isCurved:Z if-eqz v6, :cond_1c4 iget-object v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->mMatrixRotate:Landroid/graphics/Matrix; invoke-virtual {v1, v6}, Landroid/graphics/Canvas;->concat(Landroid/graphics/Matrix;)V .line 626 :cond_1c4 iget v6, v0, Lcom/itheima/wheelpicker/WheelPicker;->mDrawnCenterX:I int-to-float v6, v6 int-to-float v7, v8 iget-object v8, v0, Lcom/itheima/wheelpicker/WheelPicker;->mPaint:Landroid/graphics/Paint; invoke-virtual {v1, v5, v6, v7, v8}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V .line 627 invoke-virtual/range {p1 .. p1}, Landroid/graphics/Canvas;->restore()V :goto_1d0 add-int/lit8 v4, v4, 0x1 add-int/lit8 v3, v3, 0x1 goto/16 :goto_1a .line 632 :cond_1d6 iget-boolean v2, v0, Lcom/itheima/wheelpicker/WheelPicker;->hasCurtain:Z if-eqz v2, :cond_1ef .line 633 iget-object v2, v0, Lcom/itheima/wheelpicker/WheelPicker;->mPaint:Landroid/graphics/Paint; iget v3, v0, Lcom/itheima/wheelpicker/WheelPicker;->mCurtainColor:I invoke-virtual {v2, v3}, Landroid/graphics/Paint;->setColor(I)V .line 634 iget-object v2, v0, Lcom/itheima/wheelpicker/WheelPicker;->mPaint:Landroid/graphics/Paint; sget-object v3, Landroid/graphics/Paint$Style;->FILL:Landroid/graphics/Paint$Style; invoke-virtual {v2, v3}, Landroid/graphics/Paint;->setStyle(Landroid/graphics/Paint$Style;)V .line 635 iget-object v2, v0, Lcom/itheima/wheelpicker/WheelPicker;->mRectCurrentItem:Landroid/graphics/Rect; iget-object v3, v0, Lcom/itheima/wheelpicker/WheelPicker;->mPaint:Landroid/graphics/Paint; invoke-virtual {v1, v2, v3}, Landroid/graphics/Canvas;->drawRect(Landroid/graphics/Rect;Landroid/graphics/Paint;)V :cond_1ef return-void .end method .method protected onMeasure(II)V .registers 12 .line 400 invoke-static {p1}, Landroid/view/View$MeasureSpec;->getMode(I)I move-result v0 .line 401 invoke-static {p2}, Landroid/view/View$MeasureSpec;->getMode(I)I move-result v1 .line 403 invoke-static {p1}, Landroid/view/View$MeasureSpec;->getSize(I)I move-result p1 .line 404 invoke-static {p2}, Landroid/view/View$MeasureSpec;->getSize(I)I move-result p2 .line 408 iget v2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mTextMaxWidth:I .line 409 iget v3, p0, Lcom/itheima/wheelpicker/WheelPicker;->mTextMaxHeight:I iget v4, p0, Lcom/itheima/wheelpicker/WheelPicker;->mVisibleItemCount:I mul-int/2addr v3, v4 iget v5, p0, Lcom/itheima/wheelpicker/WheelPicker;->mItemSpace:I add-int/lit8 v4, v4, -0x1 mul-int/2addr v5, v4 add-int/2addr v3, v5 .line 413 iget-boolean v4, p0, Lcom/itheima/wheelpicker/WheelPicker;->isCurved:Z if-eqz v4, :cond_2b mul-int/lit8 v3, v3, 0x2 int-to-double v3, v3 const-wide v5, 0x400921fb54442d18L # Math.PI div-double/2addr v3, v5 double-to-int v3, v3 .line 416 :cond_2b iget-boolean v4, p0, Lcom/itheima/wheelpicker/WheelPicker;->isDebug:Z const-string v5, ")" const-string v6, ":" if-eqz v4, :cond_53 .line 417 sget-object v4, Lcom/itheima/wheelpicker/WheelPicker;->TAG:Ljava/lang/String; new-instance v7, Ljava/lang/StringBuilder; const-string v8, "Wheel\'s content size is (" invoke-direct {v7, v8}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v7, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object v7 invoke-virtual {v7, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v7 invoke-virtual {v7, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object v7 invoke-virtual {v7, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v7 invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v7 invoke-static {v4, v7}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I .line 421 :cond_53 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->getPaddingLeft()I move-result v4 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->getPaddingRight()I move-result v7 add-int/2addr v4, v7 add-int/2addr v2, v4 .line 422 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->getPaddingTop()I move-result v4 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->getPaddingBottom()I move-result v7 add-int/2addr v4, v7 add-int/2addr v3, v4 .line 423 iget-boolean v4, p0, Lcom/itheima/wheelpicker/WheelPicker;->isDebug:Z if-eqz v4, :cond_8b .line 424 sget-object v4, Lcom/itheima/wheelpicker/WheelPicker;->TAG:Ljava/lang/String; new-instance v7, Ljava/lang/StringBuilder; const-string v8, "Wheel\'s size is (" invoke-direct {v7, v8}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v7, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object v7 invoke-virtual {v7, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v6 invoke-virtual {v6, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object v6 invoke-virtual {v6, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v5 invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v5 invoke-static {v4, v5}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I .line 428 :cond_8b invoke-direct {p0, v0, p1, v2}, Lcom/itheima/wheelpicker/WheelPicker;->measureSize(III)I move-result p1 .line 429 invoke-direct {p0, v1, p2, v3}, Lcom/itheima/wheelpicker/WheelPicker;->measureSize(III)I move-result p2 .line 431 invoke-virtual {p0, p1, p2}, Lcom/itheima/wheelpicker/WheelPicker;->setMeasuredDimension(II)V return-void .end method .method protected onSizeChanged(IIII)V .registers 7 .line 450 iget-object p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mRectDrawn:Landroid/graphics/Rect; invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->getPaddingLeft()I move-result p2 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->getPaddingTop()I move-result p3 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->getWidth()I move-result p4 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->getPaddingRight()I move-result v0 sub-int/2addr p4, v0 .line 451 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->getHeight()I move-result v0 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->getPaddingBottom()I move-result v1 sub-int/2addr v0, v1 .line 450 invoke-virtual {p1, p2, p3, p4, v0}, Landroid/graphics/Rect;->set(IIII)V .line 452 iget-boolean p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->isDebug:Z if-eqz p1, :cond_6d .line 453 sget-object p1, Lcom/itheima/wheelpicker/WheelPicker;->TAG:Ljava/lang/String; new-instance p2, Ljava/lang/StringBuilder; const-string p3, "Wheel\'s drawn rect size is (" invoke-direct {p2, p3}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V iget-object p3, p0, Lcom/itheima/wheelpicker/WheelPicker;->mRectDrawn:Landroid/graphics/Rect; invoke-virtual {p3}, Landroid/graphics/Rect;->width()I move-result p3 invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object p2 const-string p3, ":" invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 iget-object p4, p0, Lcom/itheima/wheelpicker/WheelPicker;->mRectDrawn:Landroid/graphics/Rect; .line 454 invoke-virtual {p4}, Landroid/graphics/Rect;->height()I move-result p4 invoke-virtual {p2, p4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object p2 const-string p4, ") and location is (" invoke-virtual {p2, p4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 iget-object p4, p0, Lcom/itheima/wheelpicker/WheelPicker;->mRectDrawn:Landroid/graphics/Rect; iget p4, p4, Landroid/graphics/Rect;->left:I invoke-virtual {p2, p4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object p2 invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 iget-object p3, p0, Lcom/itheima/wheelpicker/WheelPicker;->mRectDrawn:Landroid/graphics/Rect; iget p3, p3, Landroid/graphics/Rect;->top:I invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object p2 const-string p3, ")" invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p2 .line 453 invoke-static {p1, p2}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I .line 459 :cond_6d iget-object p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mRectDrawn:Landroid/graphics/Rect; invoke-virtual {p1}, Landroid/graphics/Rect;->centerX()I move-result p1 iput p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mWheelCenterX:I .line 460 iget-object p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mRectDrawn:Landroid/graphics/Rect; invoke-virtual {p1}, Landroid/graphics/Rect;->centerY()I move-result p1 iput p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mWheelCenterY:I .line 464 invoke-direct {p0}, Lcom/itheima/wheelpicker/WheelPicker;->computeDrawnCenter()V .line 466 iget-object p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mRectDrawn:Landroid/graphics/Rect; invoke-virtual {p1}, Landroid/graphics/Rect;->height()I move-result p1 div-int/lit8 p1, p1, 0x2 iput p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mHalfWheelHeight:I .line 468 iget-object p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mRectDrawn:Landroid/graphics/Rect; invoke-virtual {p1}, Landroid/graphics/Rect;->height()I move-result p1 iget p2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mVisibleItemCount:I div-int/2addr p1, p2 iput p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mItemHeight:I .line 469 div-int/lit8 p1, p1, 0x2 iput p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mHalfItemHeight:I .line 473 invoke-direct {p0}, Lcom/itheima/wheelpicker/WheelPicker;->computeFlingLimitY()V .line 477 invoke-direct {p0}, Lcom/itheima/wheelpicker/WheelPicker;->computeIndicatorRect()V .line 481 invoke-direct {p0}, Lcom/itheima/wheelpicker/WheelPicker;->computeCurrentItemRect()V return-void .end method .method public onTouchEvent(Landroid/view/MotionEvent;)Z .registers 15 .line 673 invoke-virtual {p1}, Landroid/view/MotionEvent;->getAction()I move-result v0 const/4 v1, 0x1 if-eqz v0, :cond_112 const/4 v2, 0x0 const/4 v3, 0x0 if-eq v0, v1, :cond_77 const/4 v4, 0x2 if-eq v0, v4, :cond_2b const/4 p1, 0x3 if-eq v0, p1, :cond_13 goto/16 :goto_14a .line 743 :cond_13 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->getParent()Landroid/view/ViewParent; move-result-object p1 if-eqz p1, :cond_20 .line 744 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->getParent()Landroid/view/ViewParent; move-result-object p1 invoke-interface {p1, v3}, Landroid/view/ViewParent;->requestDisallowInterceptTouchEvent(Z)V .line 745 :cond_20 iget-object p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mTracker:Landroid/view/VelocityTracker; if-eqz p1, :cond_14a .line 746 invoke-virtual {p1}, Landroid/view/VelocityTracker;->recycle()V .line 747 iput-object v2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mTracker:Landroid/view/VelocityTracker; goto/16 :goto_14a .line 689 :cond_2b iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mDownPointY:I int-to-float v0, v0 invoke-virtual {p1}, Landroid/view/MotionEvent;->getY()F move-result v2 sub-float/2addr v0, v2 invoke-static {v0}, Ljava/lang/Math;->abs(F)F move-result v0 iget v2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mTouchSlop:I int-to-float v2, v2 cmpg-float v0, v0, v2 if-gez v0, :cond_42 .line 690 iput-boolean v1, p0, Lcom/itheima/wheelpicker/WheelPicker;->isClick:Z goto/16 :goto_14a .line 693 :cond_42 iput-boolean v3, p0, Lcom/itheima/wheelpicker/WheelPicker;->isClick:Z .line 694 iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mTracker:Landroid/view/VelocityTracker; invoke-virtual {v0, p1}, Landroid/view/VelocityTracker;->addMovement(Landroid/view/MotionEvent;)V .line 695 iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mOnWheelChangeListener:Lcom/itheima/wheelpicker/WheelPicker$OnWheelChangeListener; if-eqz v0, :cond_50 .line 696 invoke-interface {v0, v1}, Lcom/itheima/wheelpicker/WheelPicker$OnWheelChangeListener;->onWheelScrollStateChanged(I)V .line 700 :cond_50 invoke-virtual {p1}, Landroid/view/MotionEvent;->getY()F move-result v0 iget v2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mLastPointY:I int-to-float v2, v2 sub-float/2addr v0, v2 .line 701 invoke-static {v0}, Ljava/lang/Math;->abs(F)F move-result v2 const/high16 v3, 0x3f800000 # 1.0f cmpg-float v2, v2, v3 if-gez v2, :cond_64 goto/16 :goto_14a .line 702 :cond_64 iget v2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mScrollOffsetY:I int-to-float v2, v2 add-float/2addr v2, v0 float-to-int v0, v2 iput v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mScrollOffsetY:I .line 703 invoke-virtual {p1}, Landroid/view/MotionEvent;->getY()F move-result p1 float-to-int p1, p1 iput p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mLastPointY:I .line 704 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->invalidate()V goto/16 :goto_14a .line 707 :cond_77 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->getParent()Landroid/view/ViewParent; move-result-object v0 if-eqz v0, :cond_84 .line 708 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->getParent()Landroid/view/ViewParent; move-result-object v0 invoke-interface {v0, v3}, Landroid/view/ViewParent;->requestDisallowInterceptTouchEvent(Z)V .line 709 :cond_84 iget-boolean v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->isClick:Z if-eqz v0, :cond_8a goto/16 :goto_14a .line 710 :cond_8a iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mTracker:Landroid/view/VelocityTracker; invoke-virtual {v0, p1}, Landroid/view/VelocityTracker;->addMovement(Landroid/view/MotionEvent;)V .line 713 iget-object p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mTracker:Landroid/view/VelocityTracker; iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mMaximumVelocity:I int-to-float v0, v0 const/16 v4, 0x3e8 invoke-virtual {p1, v4, v0}, Landroid/view/VelocityTracker;->computeCurrentVelocity(IF)V .line 719 iput-boolean v3, p0, Lcom/itheima/wheelpicker/WheelPicker;->isForceFinishScroll:Z .line 720 iget-object p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mTracker:Landroid/view/VelocityTracker; invoke-virtual {p1}, Landroid/view/VelocityTracker;->getYVelocity()F move-result p1 float-to-int v8, p1 .line 721 invoke-static {v8}, Ljava/lang/Math;->abs(I)I move-result p1 iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mMinimumVelocity:I if-le p1, v0, :cond_d1 .line 722 iget-object v4, p0, Lcom/itheima/wheelpicker/WheelPicker;->mScroller:Landroid/widget/Scroller; iget v6, p0, Lcom/itheima/wheelpicker/WheelPicker;->mScrollOffsetY:I iget v11, p0, Lcom/itheima/wheelpicker/WheelPicker;->mMinFlingY:I iget v12, p0, Lcom/itheima/wheelpicker/WheelPicker;->mMaxFlingY:I const/4 v5, 0x0 const/4 v7, 0x0 const/4 v9, 0x0 const/4 v10, 0x0 invoke-virtual/range {v4 .. v12}, Landroid/widget/Scroller;->fling(IIIIIIII)V .line 723 iget-object p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mScroller:Landroid/widget/Scroller; invoke-virtual {p1}, Landroid/widget/Scroller;->getFinalY()I move-result v0 iget-object v3, p0, Lcom/itheima/wheelpicker/WheelPicker;->mScroller:Landroid/widget/Scroller; .line 724 invoke-virtual {v3}, Landroid/widget/Scroller;->getFinalY()I move-result v3 iget v4, p0, Lcom/itheima/wheelpicker/WheelPicker;->mItemHeight:I rem-int/2addr v3, v4 invoke-direct {p0, v3}, Lcom/itheima/wheelpicker/WheelPicker;->computeDistanceToEndPoint(I)I move-result v3 add-int/2addr v0, v3 .line 723 invoke-virtual {p1, v0}, Landroid/widget/Scroller;->setFinalY(I)V goto :goto_e0 .line 726 :cond_d1 iget-object p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mScroller:Landroid/widget/Scroller; iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mScrollOffsetY:I iget v4, p0, Lcom/itheima/wheelpicker/WheelPicker;->mItemHeight:I rem-int v4, v0, v4 .line 727 invoke-direct {p0, v4}, Lcom/itheima/wheelpicker/WheelPicker;->computeDistanceToEndPoint(I)I move-result v4 .line 726 invoke-virtual {p1, v3, v0, v3, v4}, Landroid/widget/Scroller;->startScroll(IIII)V .line 731 :goto_e0 iget-boolean p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->isCyclic:Z if-nez p1, :cond_103 .line 732 iget-object p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mScroller:Landroid/widget/Scroller; invoke-virtual {p1}, Landroid/widget/Scroller;->getFinalY()I move-result p1 iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mMaxFlingY:I if-le p1, v0, :cond_f4 .line 733 iget-object p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mScroller:Landroid/widget/Scroller; invoke-virtual {p1, v0}, Landroid/widget/Scroller;->setFinalY(I)V goto :goto_103 .line 734 :cond_f4 iget-object p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mScroller:Landroid/widget/Scroller; invoke-virtual {p1}, Landroid/widget/Scroller;->getFinalY()I move-result p1 iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mMinFlingY:I if-ge p1, v0, :cond_103 .line 735 iget-object p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mScroller:Landroid/widget/Scroller; invoke-virtual {p1, v0}, Landroid/widget/Scroller;->setFinalY(I)V .line 736 :cond_103 :goto_103 iget-object p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mHandler:Landroid/os/Handler; invoke-virtual {p1, p0}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z .line 737 iget-object p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mTracker:Landroid/view/VelocityTracker; if-eqz p1, :cond_14a .line 738 invoke-virtual {p1}, Landroid/view/VelocityTracker;->recycle()V .line 739 iput-object v2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mTracker:Landroid/view/VelocityTracker; goto :goto_14a .line 675 :cond_112 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->getParent()Landroid/view/ViewParent; move-result-object v0 if-eqz v0, :cond_11f .line 676 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->getParent()Landroid/view/ViewParent; move-result-object v0 invoke-interface {v0, v1}, Landroid/view/ViewParent;->requestDisallowInterceptTouchEvent(Z)V .line 677 :cond_11f iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mTracker:Landroid/view/VelocityTracker; if-nez v0, :cond_12a .line 678 invoke-static {}, Landroid/view/VelocityTracker;->obtain()Landroid/view/VelocityTracker; move-result-object v0 iput-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mTracker:Landroid/view/VelocityTracker; goto :goto_12d .line 680 :cond_12a invoke-virtual {v0}, Landroid/view/VelocityTracker;->clear()V .line 681 :goto_12d iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mTracker:Landroid/view/VelocityTracker; invoke-virtual {v0, p1}, Landroid/view/VelocityTracker;->addMovement(Landroid/view/MotionEvent;)V .line 682 iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mScroller:Landroid/widget/Scroller; invoke-virtual {v0}, Landroid/widget/Scroller;->isFinished()Z move-result v0 if-nez v0, :cond_141 .line 683 iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mScroller:Landroid/widget/Scroller; invoke-virtual {v0}, Landroid/widget/Scroller;->abortAnimation()V .line 684 iput-boolean v1, p0, Lcom/itheima/wheelpicker/WheelPicker;->isForceFinishScroll:Z .line 686 :cond_141 invoke-virtual {p1}, Landroid/view/MotionEvent;->getY()F move-result p1 float-to-int p1, p1 iput p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mLastPointY:I iput p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mDownPointY:I :cond_14a :goto_14a return v1 .end method .method public run()V .registers 6 .line 766 iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mData:Ljava/util/List; if-eqz v0, :cond_a2 invoke-interface {v0}, Ljava/util/List;->size()I move-result v0 if-nez v0, :cond_c goto/16 :goto_a2 .line 767 :cond_c iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mScroller:Landroid/widget/Scroller; invoke-virtual {v0}, Landroid/widget/Scroller;->isFinished()Z move-result v0 if-eqz v0, :cond_80 iget-boolean v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->isForceFinishScroll:Z if-nez v0, :cond_80 .line 768 iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mItemHeight:I if-nez v0, :cond_1d return-void .line 769 :cond_1d iget v1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mScrollOffsetY:I neg-int v1, v1 div-int/2addr v1, v0 iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mSelectedItemPosition:I add-int/2addr v1, v0 iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mData:Ljava/util/List; invoke-interface {v0}, Ljava/util/List;->size()I move-result v0 rem-int/2addr v1, v0 if-gez v1, :cond_34 .line 770 iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mData:Ljava/util/List; invoke-interface {v0}, Ljava/util/List;->size()I move-result v0 add-int/2addr v1, v0 .line 771 :cond_34 iget-boolean v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->isDebug:Z if-eqz v0, :cond_64 .line 772 sget-object v0, Lcom/itheima/wheelpicker/WheelPicker;->TAG:Ljava/lang/String; new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object v2 const-string v3, ":" invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 iget-object v4, p0, Lcom/itheima/wheelpicker/WheelPicker;->mData:Ljava/util/List; invoke-interface {v4, v1}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v4 invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 iget v3, p0, Lcom/itheima/wheelpicker/WheelPicker;->mScrollOffsetY:I invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-static {v0, v2}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I .line 773 :cond_64 iput v1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mCurrentItemPosition:I .line 774 iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mOnItemSelectedListener:Lcom/itheima/wheelpicker/WheelPicker$OnItemSelectedListener; if-eqz v0, :cond_73 .line 775 iget-object v2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mData:Ljava/util/List; invoke-interface {v2, v1}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v2 invoke-interface {v0, p0, v2, v1}, Lcom/itheima/wheelpicker/WheelPicker$OnItemSelectedListener;->onItemSelected(Lcom/itheima/wheelpicker/WheelPicker;Ljava/lang/Object;I)V .line 776 :cond_73 iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mOnWheelChangeListener:Lcom/itheima/wheelpicker/WheelPicker$OnWheelChangeListener; if-eqz v0, :cond_80 .line 777 invoke-interface {v0, v1}, Lcom/itheima/wheelpicker/WheelPicker$OnWheelChangeListener;->onWheelSelected(I)V .line 778 iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mOnWheelChangeListener:Lcom/itheima/wheelpicker/WheelPicker$OnWheelChangeListener; const/4 v1, 0x0 invoke-interface {v0, v1}, Lcom/itheima/wheelpicker/WheelPicker$OnWheelChangeListener;->onWheelScrollStateChanged(I)V .line 781 :cond_80 iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mScroller:Landroid/widget/Scroller; invoke-virtual {v0}, Landroid/widget/Scroller;->computeScrollOffset()Z move-result v0 if-eqz v0, :cond_a2 .line 782 iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mOnWheelChangeListener:Lcom/itheima/wheelpicker/WheelPicker$OnWheelChangeListener; if-eqz v0, :cond_90 const/4 v1, 0x2 .line 783 invoke-interface {v0, v1}, Lcom/itheima/wheelpicker/WheelPicker$OnWheelChangeListener;->onWheelScrollStateChanged(I)V .line 784 :cond_90 iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mScroller:Landroid/widget/Scroller; invoke-virtual {v0}, Landroid/widget/Scroller;->getCurrY()I move-result v0 iput v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mScrollOffsetY:I .line 785 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->postInvalidate()V .line 786 iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mHandler:Landroid/os/Handler; const-wide/16 v1, 0x10 invoke-virtual {v0, p0, v1, v2}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z :cond_a2 :goto_a2 return-void .end method .method public setAtmospheric(Z)V .registers 2 .line 1027 iput-boolean p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->hasAtmospheric:Z .line 1028 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->invalidate()V return-void .end method .method public setCurtain(Z)V .registers 2 .line 1004 iput-boolean p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->hasCurtain:Z .line 1005 invoke-direct {p0}, Lcom/itheima/wheelpicker/WheelPicker;->computeCurrentItemRect()V .line 1006 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->invalidate()V return-void .end method .method public setCurtainColor(I)V .registers 2 .line 1021 iput p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mCurtainColor:I .line 1022 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->invalidate()V return-void .end method .method public setCurved(Z)V .registers 2 .line 1043 iput-boolean p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->isCurved:Z .line 1044 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->requestLayout()V .line 1045 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->invalidate()V return-void .end method .method public setCyclic(Z)V .registers 2 .line 814 iput-boolean p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->isCyclic:Z .line 815 invoke-direct {p0}, Lcom/itheima/wheelpicker/WheelPicker;->computeFlingLimitY()V .line 816 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->invalidate()V return-void .end method .method public setData(Ljava/util/List;)V .registers 4 if-eqz p1, :cond_38 .line 855 iput-object p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mData:Ljava/util/List; .line 858 iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mSelectedItemPosition:I invoke-interface {p1}, Ljava/util/List;->size()I move-result v1 add-int/lit8 v1, v1, -0x1 if-gt v0, v1, :cond_1e iget v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mCurrentItemPosition:I invoke-interface {p1}, Ljava/util/List;->size()I move-result v1 add-int/lit8 v1, v1, -0x1 if-le v0, v1, :cond_19 goto :goto_1e .line 861 :cond_19 iget p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mCurrentItemPosition:I iput p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mSelectedItemPosition:I goto :goto_28 .line 859 :cond_1e :goto_1e invoke-interface {p1}, Ljava/util/List;->size()I move-result p1 add-int/lit8 p1, p1, -0x1 iput p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mCurrentItemPosition:I iput p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mSelectedItemPosition:I :goto_28 const/4 p1, 0x0 .line 863 iput p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mScrollOffsetY:I .line 864 invoke-direct {p0}, Lcom/itheima/wheelpicker/WheelPicker;->computeTextSize()V .line 865 invoke-direct {p0}, Lcom/itheima/wheelpicker/WheelPicker;->computeFlingLimitY()V .line 866 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->requestLayout()V .line 867 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->invalidate()V return-void .line 854 :cond_38 new-instance p1, Ljava/lang/NullPointerException; const-string v0, "WheelPicker\'s data can not be null!" invoke-direct {p1, v0}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V throw p1 .end method .method public setDebug(Z)V .registers 2 .line 792 iput-boolean p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->isDebug:Z return-void .end method .method public setIndicator(Z)V .registers 2 .line 969 iput-boolean p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->hasIndicator:Z .line 970 invoke-direct {p0}, Lcom/itheima/wheelpicker/WheelPicker;->computeIndicatorRect()V .line 971 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->invalidate()V return-void .end method .method public setIndicatorColor(I)V .registers 2 .line 998 iput p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mIndicatorColor:I .line 999 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->invalidate()V return-void .end method .method public setIndicatorSize(I)V .registers 2 .line 986 iput p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mIndicatorSize:I .line 987 invoke-direct {p0}, Lcom/itheima/wheelpicker/WheelPicker;->computeIndicatorRect()V .line 988 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->invalidate()V return-void .end method .method public setItemAlign(I)V .registers 2 .line 1055 iput p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mItemAlign:I .line 1056 invoke-direct {p0}, Lcom/itheima/wheelpicker/WheelPicker;->updateItemTextAlign()V .line 1057 invoke-direct {p0}, Lcom/itheima/wheelpicker/WheelPicker;->computeDrawnCenter()V .line 1058 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->invalidate()V return-void .end method .method public setItemSpace(I)V .registers 2 .line 962 iput p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mItemSpace:I .line 963 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->requestLayout()V .line 964 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->invalidate()V return-void .end method .method public setItemTextColor(I)V .registers 2 .line 937 iput p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mItemTextColor:I .line 938 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->invalidate()V return-void .end method .method public setItemTextSize(I)V .registers 3 .line 948 iput p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mItemTextSize:I .line 949 iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mPaint:Landroid/graphics/Paint; int-to-float p1, p1 invoke-virtual {v0, p1}, Landroid/graphics/Paint;->setTextSize(F)V .line 950 invoke-direct {p0}, Lcom/itheima/wheelpicker/WheelPicker;->computeTextSize()V .line 951 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->requestLayout()V .line 952 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->invalidate()V return-void .end method .method public setMaximumWidthText(Ljava/lang/String;)V .registers 3 if-eqz p1, :cond_e .line 896 iput-object p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mMaxWidthText:Ljava/lang/String; .line 897 invoke-direct {p0}, Lcom/itheima/wheelpicker/WheelPicker;->computeTextSize()V .line 898 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->requestLayout()V .line 899 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->invalidate()V return-void .line 895 :cond_e new-instance p1, Ljava/lang/NullPointerException; const-string v0, "Maximum width text can not be null!" invoke-direct {p1, v0}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V throw p1 .end method .method public setMaximumWidthTextPosition(I)V .registers 5 .line 909 invoke-direct {p0, p1}, Lcom/itheima/wheelpicker/WheelPicker;->isPosInRang(I)Z move-result v0 if-eqz v0, :cond_12 .line 912 iput p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mTextMaxWidthPosition:I .line 913 invoke-direct {p0}, Lcom/itheima/wheelpicker/WheelPicker;->computeTextSize()V .line 914 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->requestLayout()V .line 915 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->invalidate()V return-void .line 910 :cond_12 new-instance v0, Ljava/lang/ArrayIndexOutOfBoundsException; new-instance v1, Ljava/lang/StringBuilder; const-string v2, "Maximum width text Position must in [0, " invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V iget-object v2, p0, Lcom/itheima/wheelpicker/WheelPicker;->mData:Ljava/util/List; .line 911 invoke-interface {v2}, Ljava/util/List;->size()I move-result v2 invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object v1 const-string v2, "), but current is " invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-direct {v0, p1}, Ljava/lang/ArrayIndexOutOfBoundsException;->(Ljava/lang/String;)V throw v0 .end method .method public setOnItemSelectedListener(Lcom/itheima/wheelpicker/WheelPicker$OnItemSelectedListener;)V .registers 2 .line 821 iput-object p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mOnItemSelectedListener:Lcom/itheima/wheelpicker/WheelPicker$OnItemSelectedListener; return-void .end method .method public setOnWheelChangeListener(Lcom/itheima/wheelpicker/WheelPicker$OnWheelChangeListener;)V .registers 2 .line 884 iput-object p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mOnWheelChangeListener:Lcom/itheima/wheelpicker/WheelPicker$OnWheelChangeListener; return-void .end method .method public setSameWidth(Z)V .registers 2 .line 871 iput-boolean p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->hasSameWidth:Z .line 872 invoke-direct {p0}, Lcom/itheima/wheelpicker/WheelPicker;->computeTextSize()V .line 873 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->requestLayout()V .line 874 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->invalidate()V return-void .end method .method public setSelectedItemPosition(I)V .registers 3 .line 831 iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mData:Ljava/util/List; invoke-interface {v0}, Ljava/util/List;->size()I move-result v0 add-int/lit8 v0, v0, -0x1 invoke-static {p1, v0}, Ljava/lang/Math;->min(II)I move-result p1 const/4 v0, 0x0 .line 832 invoke-static {p1, v0}, Ljava/lang/Math;->max(II)I move-result p1 .line 833 iput p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mSelectedItemPosition:I .line 834 iput p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mCurrentItemPosition:I .line 835 iput v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mScrollOffsetY:I .line 836 invoke-direct {p0}, Lcom/itheima/wheelpicker/WheelPicker;->computeFlingLimitY()V .line 837 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->requestLayout()V .line 838 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->invalidate()V return-void .end method .method public setSelectedItemTextColor(I)V .registers 2 .line 925 iput p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mSelectedItemTextColor:I .line 926 invoke-direct {p0}, Lcom/itheima/wheelpicker/WheelPicker;->computeCurrentItemRect()V .line 927 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->invalidate()V return-void .end method .method public setStopScroll(Z)V .registers 3 .line 668 iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mScroller:Landroid/widget/Scroller; invoke-virtual {v0, p1}, Landroid/widget/Scroller;->forceFinished(Z)V return-void .end method .method public setTypeface(Landroid/graphics/Typeface;)V .registers 3 .line 1070 iget-object v0, p0, Lcom/itheima/wheelpicker/WheelPicker;->mPaint:Landroid/graphics/Paint; if-eqz v0, :cond_7 .line 1071 invoke-virtual {v0, p1}, Landroid/graphics/Paint;->setTypeface(Landroid/graphics/Typeface;)Landroid/graphics/Typeface; .line 1072 :cond_7 invoke-direct {p0}, Lcom/itheima/wheelpicker/WheelPicker;->computeTextSize()V .line 1073 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->requestLayout()V .line 1074 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->invalidate()V return-void .end method .method public setVisibleItemCount(I)V .registers 2 .line 802 iput p1, p0, Lcom/itheima/wheelpicker/WheelPicker;->mVisibleItemCount:I .line 803 invoke-direct {p0}, Lcom/itheima/wheelpicker/WheelPicker;->updateVisibleItemCount()V .line 804 invoke-virtual {p0}, Lcom/itheima/wheelpicker/WheelPicker;->requestLayout()V return-void .end method