StarRatingBar.java 文件源码

java
阅读 20 收藏 0 点赞 0 评论 0

项目:FMTech 作者:
public StarRatingBar(Context paramContext, AttributeSet paramAttributeSet)
{
  super(paramContext, paramAttributeSet);
  Resources localResources = paramContext.getResources();
  TypedArray localTypedArray = paramContext.obtainStyledAttributes(paramAttributeSet, R.styleable.StarRatingBar);
  this.mGap = localTypedArray.getDimensionPixelSize(R.styleable.StarRatingBar_gap, 0);
  this.mRating = localTypedArray.getFloat(R.styleable.StarRatingBar_rating, 0.0F);
  this.mStarHeight = localTypedArray.getDimensionPixelSize(R.styleable.StarRatingBar_star_height, localResources.getDimensionPixelSize(R.dimen.play_star_height_default));
  this.mRange = localTypedArray.getInt(R.styleable.StarRatingBar_range, 5);
  this.mShowEmptyStars = localTypedArray.getBoolean(R.styleable.StarRatingBar_show_empty_stars, true);
  this.mIsInCompactMode = localTypedArray.getBoolean(R.styleable.StarRatingBar_compact_mode, false);
  this.mTextSize = localTypedArray.getDimensionPixelSize(R.styleable.StarRatingBar_text_size, localResources.getDimensionPixelSize(R.dimen.play_medium_size));
  int i = localTypedArray.getColor(R.styleable.StarRatingBar_star_color, localResources.getColor(R.color.play_white));
  int j = localTypedArray.getColor(R.styleable.StarRatingBar_star_bg_color, localResources.getColor(R.color.play_transparent));
  localTypedArray.recycle();
  this.mStarPaint = new Paint(1);
  this.mStarPaint.setColor(i);
  this.mStarPaint.setStyle(Paint.Style.FILL);
  this.mStarBackgroundPaint = new Paint(1);
  this.mStarBackgroundPaint.setColor(j);
  this.mStarBackgroundPaint.setStyle(Paint.Style.FILL);
  this.mStarPath = new Path();
  this.mStarPath.setFillType(Path.FillType.EVEN_ODD);
  this.mLeftHalfStarPath = new Path();
  this.mLeftHalfStarPath.setFillType(Path.FillType.EVEN_ODD);
  this.mRightHalfStarPath = new Path();
  this.mRightHalfStarPath.setFillType(Path.FillType.EVEN_ODD);
  this.mRadius = (this.mStarHeight / (1.0D + Math.sin(0.9424777960769379D)));
  this.mShortRadius = (Math.sin(0.3926990816987241D) * this.mRadius / Math.sin(2.12057504117311D));
  this.mHalfStarWidth = ((float)(this.mRadius * Math.sin(1.256637061435917D)));
  this.mVertices = new PointF[10];
  for (int k = 0; k < 10; k++) {
    this.mVertices[k] = new PointF();
  }
  this.mTextPaint = new TextPaint(1);
  this.mTextPaint.density = localResources.getDisplayMetrics().density;
  this.mTextPaint.setTextSize(this.mTextSize);
  this.mTextPaint.setFakeBoldText(false);
  Paint.FontMetrics localFontMetrics = this.mTextPaint.getFontMetrics();
  this.mTextHeight = ((int)(Math.abs(localFontMetrics.top) + Math.abs(localFontMetrics.bottom)));
  this.mTextBaseline = ((int)Math.abs(localFontMetrics.top));
  updateRatingDescription();
  this.mVertices[0].x = 0.0F;
  this.mVertices[0].y = (-1.0F * (float)this.mRadius);
  this.mVertices[1].x = ((float)(this.mShortRadius * Math.sin(0.6283185307179586D)));
  this.mVertices[1].y = (-1.0F * (float)(this.mShortRadius * Math.cos(0.6283185307179586D)));
  this.mVertices[2].x = ((float)(this.mRadius * Math.sin(1.256637061435917D)));
  this.mVertices[2].y = (-1.0F * (float)(this.mRadius * Math.cos(1.256637061435917D)));
  this.mVertices[3].x = ((float)(this.mShortRadius * Math.sin(1.256637061435917D)));
  this.mVertices[3].y = ((float)(this.mShortRadius * Math.cos(1.256637061435917D)));
  this.mVertices[4].x = ((float)(this.mRadius * Math.sin(0.6283185307179586D)));
  this.mVertices[4].y = ((float)((float)this.mRadius * Math.cos(0.6283185307179586D)));
  this.mVertices[5].x = 0.0F;
  this.mVertices[5].y = ((float)this.mShortRadius);
  this.mVertices[6].x = (-1.0F * this.mVertices[4].x);
  this.mVertices[6].y = this.mVertices[4].y;
  this.mVertices[7].x = (-1.0F * this.mVertices[3].x);
  this.mVertices[7].y = this.mVertices[3].y;
  this.mVertices[8].x = (-1.0F * this.mVertices[2].x);
  this.mVertices[8].y = this.mVertices[2].y;
  this.mVertices[9].x = (-1.0F * this.mVertices[1].x);
  this.mVertices[9].y = this.mVertices[1].y;
  initializeStarPaths();
  setWillNotDraw(false);
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号