void inflateGradientRootElement(Context context, AttributeSet attrs, GradientDrawable gradientDrawable) { int shape = getAttrInt(context, attrs, android.R.attr.shape, GradientDrawable.RECTANGLE); gradientDrawable.setShape(shape); boolean dither = getAttrBoolean(context, attrs, android.R.attr.dither, false); gradientDrawable.setDither(dither); }
private void drawShadowVertical(Canvas canvas, int top, int bottom, int dX) { final GradientDrawable.Orientation orientation = GradientDrawable.Orientation.LEFT_RIGHT; // dX > 0 ? GradientDrawable.Orientation.RIGHT_LEFT : GradientDrawable.Orientation.LEFT_RIGHT; final int[] colors = new int[]{0x46000000, 0x00000000}; final GradientDrawable gradient = new GradientDrawable(orientation, colors); // 渐变方向,颜色值区间 从左到右逐渐变透明 gradient.setGradientType(GradientDrawable.LINEAR_GRADIENT); gradient.setDither(true); if (dX > 0) { gradient.setBounds(dX, top, dX + 16, bottom); } else { gradient.setBounds(myWidth + dX, top, myWidth + dX + 16, bottom); // 设置阴影宽度和高度 } gradient.draw(canvas); }
private void drawShadowHorizontal(Canvas canvas, int left, int right, int dY) { final GradientDrawable.Orientation orientation = GradientDrawable.Orientation.TOP_BOTTOM; // dY > 0 ? GradientDrawable.Orientation.BOTTOM_TOP : GradientDrawable.Orientation.TOP_BOTTOM; final int[] colors = new int[]{0x46000000, 0x00000000}; final GradientDrawable gradient = new GradientDrawable(orientation, colors); gradient.setGradientType(GradientDrawable.LINEAR_GRADIENT); gradient.setDither(true); if (dY > 0) { gradient.setBounds(left, dY, right, dY + 16); } else { gradient.setBounds(left, myHeight + dY, right, myHeight + dY + 16); } gradient.draw(canvas); }
private void drawShadowVertical(Canvas canvas, int top, int bottom, int dX) { final GradientDrawable.Orientation orientation = GradientDrawable.Orientation.LEFT_RIGHT; // dX > 0 ? GradientDrawable.Orientation.RIGHT_LEFT : GradientDrawable.Orientation.LEFT_RIGHT; final int[] colors = new int[]{0x46000000, 0x00000000}; final GradientDrawable gradient = new GradientDrawable(orientation, colors); // 渐变方向,颜色值区间 从左到右逐渐变透明 gradient.setGradientType(GradientDrawable.LINEAR_GRADIENT); gradient.setDither(true); if (dX > 0) { gradient.setBounds(dX, top, dX + 16, bottom); } else { gradient.setBounds(myWidth + dX, top, myWidth + dX + 16, bottom); // 设置阴影宽度和高度 } gradient.draw(canvas); }
private void drawShadowHorizontal(Canvas canvas, int left, int right, int dY) { final GradientDrawable.Orientation orientation = GradientDrawable.Orientation.TOP_BOTTOM; // dY > 0 ? GradientDrawable.Orientation.BOTTOM_TOP : GradientDrawable.Orientation.TOP_BOTTOM; final int[] colors = new int[]{0x46000000, 0x00000000}; final GradientDrawable gradient = new GradientDrawable(orientation, colors); gradient.setGradientType(GradientDrawable.LINEAR_GRADIENT); gradient.setDither(true); if (dY > 0) { gradient.setBounds(left, dY, right, dY + 16); } else { gradient.setBounds(left, myHeight + dY, right, myHeight + dY + 16); } gradient.draw(canvas); }
private void drawShadowHorizontal(Canvas canvas, int left, int right, int dY) { final GradientDrawable.Orientation orientation = dY > 0 ? GradientDrawable.Orientation.BOTTOM_TOP : GradientDrawable.Orientation.TOP_BOTTOM; final int[] colors = new int[] { 0x46000000, 0x00000000 }; final GradientDrawable gradient = new GradientDrawable(orientation, colors); gradient.setGradientType(GradientDrawable.LINEAR_GRADIENT); gradient.setDither(true); if (dY > 0) { gradient.setBounds(left, dY - 16, right, dY); } else { gradient.setBounds(left, myHeight + dY, right, myHeight + dY + 16); } gradient.draw(canvas); }
private void drawShadowVertical(Canvas canvas, int top, int bottom, int dX) { final GradientDrawable.Orientation orientation = dX > 0 ? GradientDrawable.Orientation.RIGHT_LEFT : GradientDrawable.Orientation.LEFT_RIGHT; final int[] colors = new int[] { 0x46000000, 0x00000000 }; final GradientDrawable gradient = new GradientDrawable(orientation, colors); gradient.setGradientType(GradientDrawable.LINEAR_GRADIENT); gradient.setDither(true); if (dX > 0) { gradient.setBounds(dX - 16, top, dX, bottom); } else { gradient.setBounds(myWidth + dX, top, myWidth + dX + 16, bottom); } gradient.draw(canvas); }
gradientDrawable.setSize(mOriginalThumbHeight / 2, mOriginalThumbHeight / 2); gradientDrawable.setColor(mIsEnabled ? mThumbColor : Color.LTGRAY); gradientDrawable.setDither(true); gradientDrawable.setAlpha(mThumbAlpha); setThumb(gradientDrawable); gradientDrawable.setSize(mOriginalThumbHeight / 3, mOriginalThumbHeight / 3); gradientDrawable.setColor(mIsEnabled ? mThumbColor : Color.LTGRAY); gradientDrawable.setDither(true); gradientDrawable.setAlpha(mThumbAlpha); setThumb(gradientDrawable);
gradientDrawable.setSize(mOriginalThumbHeight / 3, mOriginalThumbHeight / 3); gradientDrawable.setColor(mIsEnabled ? mThumbColor : Color.LTGRAY); gradientDrawable.setDither(true); gradientDrawable.setAlpha(mThumbAlpha); setThumb(gradientDrawable);