@Override protected void drawCurrentPageShadow(Canvas canvas) { canvas.save(); GradientDrawable shadow; if (actiondownX > mScreenWidth >> 1) { shadow = mBackShadowDrawableLR; shadow.setBounds((int) (mScreenWidth + touch_down - 5), 0, (int) (mScreenWidth + touch_down + 5), mScreenHeight); } else { shadow = mBackShadowDrawableRL; shadow.setBounds((int) (touch_down - 5), 0, (int) (touch_down + 5), mScreenHeight); } shadow.draw(canvas); try { canvas.restore(); } catch (Exception e) { } }
mBackShadowDrawable.setBounds(leftx, (int) mBezierStart1.y, rightx, (int) (mMaxLength + mBezierStart1.y));//左上及右下角的xy坐标值,构成一个矩形 mBackShadowDrawable.draw(canvas); canvas.restore();
mFolderShadowDrawable.setBounds(left, (int) mBezierStart1.y, right, (int) (mBezierStart1.y + mMaxLength)); mFolderShadowDrawable.draw(canvas); canvas.restore();
@Override protected void dispatchDraw(Canvas canvas) { super.dispatchDraw(canvas); if (mPinnedSection != null) { // prepare variables int pLeft = getListPaddingLeft(); int pTop = getListPaddingTop(); View view = mPinnedSection.view; // draw child canvas.save(); int clipHeight = view.getHeight() + (mShadowDrawable == null ? 0 : Math.min(mShadowHeight, mSectionsDistanceY)); canvas.clipRect(pLeft, pTop, pLeft + view.getWidth(), pTop + clipHeight); canvas.translate(pLeft, pTop + mTranslateY); drawChild(canvas, mPinnedSection.view, getDrawingTime()); if (mShadowDrawable != null && mSectionsDistanceY > 0) { mShadowDrawable.setBounds(mPinnedSection.view.getLeft(), mPinnedSection.view.getBottom(), mPinnedSection.view.getRight(), mPinnedSection.view.getBottom() + mShadowHeight); mShadowDrawable.draw(canvas); } canvas.restore(); } }
mRectDrawable.setCornerRadius(mIndicatorCornerRadius); mRectDrawable.setBounds(getPaddingLeft(), getPaddingTop(), getWidth() - getPaddingRight(), getHeight() - getPaddingBottom()); mRectDrawable.draw(canvas); (int) (mIndicatorMarginTop + mIndicatorHeight)); mIndicatorDrawable.setCornerRadii(mRadiusArr); mIndicatorDrawable.draw(canvas);
mBackShadowDrawable.setBounds(leftx, (int) mBezierStart1.y, rightx, (int) (mMaxLength + mBezierStart1.y)); mBackShadowDrawable.draw(canvas); canvas.restore();
mFolderShadowDrawable.setBounds(left, (int) mBezierStart1.y, right, (int) (mBezierStart1.y + mMaxLength)); mFolderShadowDrawable.draw(canvas); canvas.restore();
@Override public void draw(Canvas canvas) { super.draw(canvas); } };
GradientDrawable gradientDrawable = new GradientDrawable( GradientDrawable.Orientation.LEFT_RIGHT, colors); float dpi = getBaseContext().getResources().getDisplayMetrics().xdpi; float dp = getBaseContext().getResources().getDisplayMetrics().density; Bitmap bitmap = Bitmap.createBitmap(Math.round(288 * dp), Math.round(72 * dp), Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); gradientDrawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); gradientDrawable.setCornerRadius(5 * (dpi/160)); gradientDrawable.draw(canvas); remoteViews.setImageViewBitmap(R.id.bck_image, bitmap);
private Bitmap addGradient(Bitmap blurBitmap) { int[] mBackShadowColors = new int[] { 0xFF000000 , 0x00000000}; GradientDrawable gradientDrawable = new GradientDrawable( GradientDrawable.Orientation.BOTTOM_TOP, mBackShadowColors); gradientDrawable.setGradientType(GradientDrawable.LINEAR_GRADIENT); gradientDrawable.setBounds(0, 0, blurBitmap.getWidth(), blurBitmap.getHeight()); Canvas canvas = new Canvas(blurBitmap); gradientDrawable.draw(canvas); return blurBitmap; } });
private void drawSelect(Canvas canvas, int verticalOffset, int horizontalOffset) { int delta = (int) ((indicatorGap + indicatorWidth) * (isSnap ? 0 : positionOffset)); selectRect.left = horizontalOffset + (indicatorWidth + indicatorGap) * currentItem + delta; selectRect.top = verticalOffset; selectRect.right = selectRect.left + indicatorWidth; selectRect.bottom = selectRect.top + indicatorHeight; selectDrawable.setCornerRadius(cornerRadius); selectDrawable.setColor(selectColor); selectDrawable.setBounds(selectRect); selectDrawable.draw(canvas); }
@Override public void draw(Canvas canvas) { if (!mIsVisible) { return; } super.draw(canvas); if (TextUtils.isEmpty(mText)) { return; } canvas.drawText(mText, getBounds().exactCenterX(), getBounds().exactCenterY() - (mPaint.descent() + mPaint.ascent()) / 2, mPaint); } }
/** * Draws shadows on top and bottom of control * @param canvas the canvas for drawing */ private void drawShadows(Canvas canvas) { int height = (int)(1.5 * getItemHeight()); topShadow.setBounds(0, 0, getWidth(), height); topShadow.draw(canvas); bottomShadow.setBounds(0, getHeight() - height, getWidth(), getHeight()); bottomShadow.draw(canvas); }
/** * Draws shadows on top and bottom of control * * @param canvas the canvas for drawing */ private void drawShadows(Canvas canvas) { topShadow.setBounds(0, 0, getWidth(), getHeight() / visibleItems); topShadow.draw(canvas); bottomShadow.setBounds(0, getHeight() - getHeight() / visibleItems, getWidth(), getHeight()); bottomShadow.draw(canvas); }
/** * 在顶部和底部画阴影的控制 * @param canvas the canvas for drawing */ private void drawShadows(Canvas canvas) { topShadow.setBounds(0, 0, getWidth(), getHeight() / visibleItems); topShadow.draw(canvas); bottomShadow.setBounds(0, getHeight() - getHeight() / visibleItems, getWidth(), getHeight()); bottomShadow.draw(canvas); }
@Override public void drawProgress(Canvas canvas) { float scale = (float) getProgress() / (float) getMaxProgress(); float indicatorWidth = (float) getMeasuredWidth() * scale; getProgressDrawable().setBounds(0, 0, (int) indicatorWidth, getMeasuredHeight()); getProgressDrawable().draw(canvas); }