微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android.graphics.drawable.ShapeDrawable的实例源码

项目:boohee_v5.6    文件BitmapHelper.java   
public static Bitmap roundBitmap(Bitmap bitmap,int i,int i2,float f,float f2,float f3,float f4) throws Throwable {
    int width = bitmap.getWidth();
    int height = bitmap.getHeight();
    Rect rect = new Rect(0,width,height);
    Bitmap createBitmap = (width == i && height == i2) ? Bitmap.createBitmap(bitmap.getWidth
            (),bitmap.getHeight(),Config.ARGB_8888) : Bitmap.createBitmap(i,i2,Config
            .ARGB_8888);
    Canvas canvas = new Canvas(createBitmap);
    Paint paint = new Paint();
    Rect rect2 = new Rect(0,i,i2);
    paint.setAntiAlias(true);
    canvas.drawARGB(0,0);
    paint.setColor(-12434878);
    float[] fArr = new float[]{f,f,f2,f3,f4,f4};
    ShapeDrawable shapeDrawable = new ShapeDrawable(new RoundRectShape(fArr,new RectF(0.0f,0.0f,0.0f),fArr));
    shapeDrawable.setBounds(rect2);
    shapeDrawable.draw(canvas);
    paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
    canvas.drawBitmap(bitmap,rect,rect2,paint);
    return createBitmap;
}
项目:boohee_v5.6    文件WeekView.java   
public void select(int dayOfOrder) {
    this.selected = dayOfOrder;
    resetSelect();
    if (this.mSelectListener != null) {
        this.mSelectListener.onSelect(dayOfOrder);
    }
    TextView tv = (TextView) this.tvList.get(dayOfOrder);
    tv.setTextColor(getResources().getColor(R.color.ju));
    ShapeDrawable oval = new ShapeDrawable(new ovalShape());
    if (dayOfOrder == this.orderOfToday) {
        oval.getPaint().setColor(getResources().getColor(R.color.he));
    } else {
        oval.getPaint().setColor(getResources().getColor(R.color.hb));
    }
    tv.setBackgroundDrawable(oval);
}
项目:android-round-textview    文件DrawableHelper.java   
public static Drawable getCornerDrawable(float topLeft,float topRight,float bottomLeft,float bottomright,@ColorInt int color) {

    float[] outerR = new float[8];
    outerR[0] = topLeft;
    outerR[1] = topLeft;
    outerR[2] = topRight;
    outerR[3] = topRight;
    outerR[4] = bottomright;
    outerR[5] = bottomright;
    outerR[6] = bottomLeft;
    outerR[7] = bottomLeft;

    ShapeDrawable drawable = new ShapeDrawable();
    drawable.setShape(new RoundRectShape(outerR,null,null));
    drawable.getPaint().setColor(color);

    return drawable;
}
项目:SimpleUILauncher    文件DeepShortcutsContainer.java   
/**
 * Adds an arrow view pointing at the original icon.
 * @param horizontalOffset the horizontal offset of the arrow,so that it
 *                              points at the center of the original icon
 */
private View addArrowView(int horizontalOffset,int verticalOffset,int width,int height) {
    LinearLayout.LayoutParams layoutParams = new LayoutParams(width,height);
    if (mIsLeftAligned) {
        layoutParams.gravity = Gravity.LEFT;
        layoutParams.leftMargin = horizontalOffset;
    } else {
        layoutParams.gravity = Gravity.RIGHT;
        layoutParams.rightMargin = horizontalOffset;
    }
    if (mIsAboveIcon) {
        layoutParams.topMargin = verticalOffset;
    } else {
        layoutParams.bottomMargin = verticalOffset;
    }

    View arrowView = new View(getContext());
    ShapeDrawable arrowDrawable = new ShapeDrawable(TriangleShape.create(
            width,height,!mIsAboveIcon));
    arrowDrawable.getPaint().setColor(Color.WHITE);
    arrowView.setBackground(arrowDrawable);
    arrowView.setElevation(getElevation());
    addView(arrowView,mIsAboveIcon ? getChildCount() : 0,layoutParams);
    return arrowView;
}
项目:LaunchEnr    文件PopupContainerWithArrow.java   
/**
 * Adds an arrow view pointing at the original icon.
 * @param horizontalOffset the horizontal offset of the arrow,int height) {
    LayoutParams layoutParams = new LayoutParams(width,height);
    if (mIsLeftAligned) {
        layoutParams.gravity = Gravity.START;
        layoutParams.leftMargin = horizontalOffset;
    } else {
        layoutParams.gravity = Gravity.END;
        layoutParams.rightMargin = horizontalOffset;
    }
    if (mIsAboveIcon) {
        layoutParams.topMargin = verticalOffset;
    } else {
        layoutParams.bottomMargin = verticalOffset;
    }

    View arrowView = new View(getContext());
    if (Gravity.isvertical(((FrameLayout.LayoutParams) getLayoutParams()).gravity)) {
        // This is only true if there wasn't room for the container next to the icon,// so we centered it instead. In that case we don't want to show the arrow.
        arrowView.setVisibility(INVISIBLE);
    } else {
        ShapeDrawable arrowDrawable = new ShapeDrawable(TriangleShape.create(
                width,!mIsAboveIcon));
        Paint arrowPaint = arrowDrawable.getPaint();
        // Note that we have to use getChildAt() instead of getItemViewAt(),// since the latter expects the arrow which hasn't been added yet.
        PopupItemView itemAttachedToArrow = (PopupItemView)
                (getChildAt(mIsAboveIcon ? getChildCount() - 1 : 0));
        arrowPaint.setColor(itemAttachedToArrow.getArrowColor(mIsAboveIcon));
        // The corner path effect won't be reflected in the shadow,but shouldn't be noticeable.
        int radius = getResources().getDimensionPixelSize(R.dimen.popup_arrow_corner_radius);
        arrowPaint.setPathEffect(new CornerPathEffect(radius));
        arrowView.setBackground(arrowDrawable);
        arrowView.setElevation(getElevation());
    }
    addView(arrowView,layoutParams);
    return arrowView;
}
项目:Ariana    文件Ariana.java   
public static Drawable drawable(final int[] colorBoxes,final float[] position,final GradientAngle gradientAngle) {
    ShapeDrawable.ShaderFactory shaderFactory = new ShapeDrawable.ShaderFactory() {
        @Override
        public Shader resize(int width,int height) {
            AngleCoordinate ac = AngleCoordinate.getAngleCoordinate(gradientAngle,height);
            LinearGradient linearGradient = new LinearGradient(ac.x1,ac.y1,ac.x2,ac.y2,colorBoxes,position,Shader.TileMode.REPEAT);
            return linearGradient;
        }
    };
    PaintDrawable paint = new PaintDrawable();
    paint.setShape(new RectShape());
    paint.setShaderFactory(shaderFactory);
    return paint;
}
项目:qmui    文件QMUIDrawableHelper.java   
/**
 * 动态创建带上分隔线或下分隔线的Drawable
 *
 * @param separatorColor
 * @param bgColor
 * @param top
 * @return
 */
public static LayerDrawable createItemSeparatorBg(@ColorInt int separatorColor,@ColorInt int bgColor,int separatorHeight,boolean top) {

    ShapeDrawable separator = new ShapeDrawable();
    separator.getPaint().setStyle(Paint.Style.FILL);
    separator.getPaint().setColor(separatorColor);

    ShapeDrawable bg = new ShapeDrawable();
    bg.getPaint().setStyle(Paint.Style.FILL);
    bg.getPaint().setColor(bgColor);

    Drawable[] layers = {separator,bg};
    LayerDrawable layerDrawable = new LayerDrawable(layers);

    layerDrawable.setLayerInset(1,top ? separatorHeight : 0,top ? 0 : separatorHeight);
    return layerDrawable;
}
项目:editor-sql    文件Label.java   
private Drawable createRectDrawable(int color) {
    RoundRectShape shape = new RoundRectShape(
            new float[]{
                    mCornerRadius,mCornerRadius,mCornerRadius
            },null);
    ShapeDrawable shapeDrawable = new ShapeDrawable(shape);
    shapeDrawable.getPaint().setColor(color);
    return shapeDrawable;
}
项目:BlackList    文件Utils.java   
/**
 * Sets the background color of the drawable
 **/
public static void setDrawableColor(Context context,Drawable drawable,@AttrRes int colorAttrRes) {
    int colorRes = getResourceId(context,colorAttrRes);
    int color = ContextCompat.getColor(context,colorRes);
    if (drawable instanceof ShapeDrawable) {
        ((ShapeDrawable) drawable).getPaint().setColor(color);
    } else if (drawable instanceof GradientDrawable) {
        ((GradientDrawable) drawable).setColor(color);
    } else if (drawable instanceof ColorDrawable) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
            ((ColorDrawable) drawable).setColor(color);
        }
    } else if (drawable instanceof RotateDrawable) {
        setDrawableColor(context,((RotateDrawable) drawable).getDrawable(),colorAttrRes);
    }
}
项目:Mix    文件OrderDialogFragment.java   
private Drawable createProductimageDrawable(Product product) {
    final ShapeDrawable background = new ShapeDrawable();
    background.setShape(new ovalShape());
    background.getPaint().setColor(ContextCompat.getColor(getContext(),product.color));

    final BitmapDrawable bitmapDrawable = new BitmapDrawable(getResources(),BitmapFactory.decodeResource(getResources(),product.image));

    final LayerDrawable layerDrawable = new LayerDrawable
            (new Drawable[]{background,bitmapDrawable});

    final int padding = (int) getResources().getDimension(R.dimen.spacing_huge);
    layerDrawable.setLayerInset(1,padding,padding);

    return layerDrawable;
}
项目:circleloadingview    文件CircleLoadingView.java   
@Override
public Drawable createShadowShapeDrawable(Context context,final CircleLoadingView circleLoadingView,int shadowColor) {
    final float density = context.getResources().getdisplayMetrics().density;
    ShapeDrawable circle = new ShapeDrawable(new ovalShape());
    circle.getPaint().setColor(shadowColor);
    final float elevation = SHADOW_ELEVATION * density;
    circleLoadingView.setElevation(elevation);

    circleLoadingView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
            ViewParent p = circleLoadingView.getParent();
            if(p instanceof ViewGroup) {
                final int margin = (int) elevation;
                ViewGroup.LayoutParams params = circleLoadingView.getLayoutParams();
                if(params instanceof ViewGroup.MarginLayoutParams){
                    ((ViewGroup.MarginLayoutParams) params).setMargins(margin,margin,margin);
                }
            }

            circleLoadingView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
        }
    });

    return circle;
}
项目:circleloadingview    文件CircleLoadingView.java   
@Override
public Drawable createShadowShapeDrawable(Context context,CircleLoadingView circleLoadingView,int shadowColor) {
    final float density = context.getResources().getdisplayMetrics().density;
    mShadowRadius = (int) (density * SHADOW_RADIUS);
    final int diameter = (int) (RADIUS * density * 2);
    final int shadowYOffset = (int) (density * Y_OFFSET);
    final int shadowXOffset = (int) (density * X_OFFSET);
    ovalShape oval = new ovalShadow(mShadowRadius,diameter);
    ShapeDrawable circle = new ShapeDrawable(oval);
    ViewCompat.setLayerType(circleLoadingView,ViewCompat.LAYER_TYPE_SOFTWARE,circle.getPaint());
    circle.getPaint().setShadowLayer(mShadowRadius,shadowXOffset,shadowYOffset,KEY_SHADOW_COLOR);
    final int padding = mShadowRadius;
    // set padding so the inner image sits correctly within the shadow.
    circleLoadingView.setPadding(padding,padding);
    return circle;
}
项目:QMUI_Android    文件QMUIDrawableHelper.java   
/**
 * 动态创建带上分隔线或下分隔线的Drawable。
 *
 * @param separatorColor 分割线颜色。
 * @param bgColor        Drawable 的背景色。
 * @param top            true 则分割线为上分割线,false 则为下分割线。
 * @return 返回所创建的 Drawable。
 */
public static LayerDrawable createItemSeparatorBg(@ColorInt int separatorColor,top ? 0 : separatorHeight);
    return layerDrawable;
}
项目:AndroidDigIn    文件MagnifierView.java   
public MagnifierView(Context context,@Nullable AttributeSet attrs,int defStyleAttr) {
        super(context,attrs,defStyleAttr);
        bitmap = ((BitmapDrawable) getResources().getDrawable(R.drawable.pic)).getBitmap();
        scaledBitmap = Bitmap.createScaledBitmap(bitmap,bitmap.getWidth() * FACTOR,bitmap.getHeight() * FACTOR,true);
//        bitmap.recycle();
        mBitmapShader = new BitmapShader(scaledBitmap,Shader.TileMode.CLAMP,Shader.TileMode.CLAMP);
        mShapeDrawable = new ShapeDrawable(new ovalShape());
        mShapeDrawable.setBounds(0,WIDTH,WIDTH);
        mShapeDrawable.getPaint().setShader(mBitmapShader);
        mMatrix = new Matrix();
        mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
        mPaint.setColor(Color.RED);
        mPaint.setStyle(Paint.Style.stroke);
        mPaint.setstrokeWidth(3);
    }
项目:LemonHello4Android    文件LemonHelloPrivateAnimationTool.java   
void setCornerRadius(View view,int radius,int color) {
    radius = _DP(radius);
    int borderWidth = 0;// 加边框后会出现空心圆角矩形的效果,所以设置为0
    float[] outerRadius = new float[8];
    float[] innerRadius = new float[8];
    for (int i = 0; i < 8; i++) {
        outerRadius[i] = radius + borderWidth;
        innerRadius[i] = radius;
    }
    ShapeDrawable shapeDrawable = // 创建图形drawable
            new ShapeDrawable(
                    // 创建圆角矩形
                    new RoundRectShape(outerRadius,new RectF(borderWidth,borderWidth,borderWidth),innerRadius));
    shapeDrawable.getPaint().setColor(color);// 使用指定的颜色绘制,即背景颜色
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
        // 高版本SDK使用新的API
        view.setBackground(shapeDrawable);
    } else {
        view.setBackgroundDrawable(shapeDrawable);
    }
}
项目:RestClient    文件RestTestAdapter.java   
@Override
public void onBindViewHolder(MyViewHolder holder,int position) {
    RestTest restTest = datas.get(position);
    RoundRectShape shape = new RoundRectShape(new float[]{8,8,8},null);
    ShapeDrawable drawable = new ShapeDrawable(shape);

    String color = "6bbd5b";
    switch (restTest.getmethod().toupperCase()) {
        case "GET":
            break;
        case "POST":
            color = "248fb2";
            break;
        case "DELETE":
            color = "e27a7a";
            break;
        case "PUT":
            color = "9b708b";
            break;
    }
    drawable.getPaint().setColor(Color.parseColor("#" + color));
    holder.tv.setBackground(drawable);
    holder.tv.setText(restTest.getmethod().toupperCase());

    holder.spec.setText(restTest.getUrl());
}
项目:InstaTag    文件InstaTag.java   
private void setColor(Drawable drawable,int color) {
    if (drawable instanceof ShapeDrawable) {
        ((ShapeDrawable) drawable).getPaint().setColor(color);
    } else if (drawable instanceof GradientDrawable) {
        ((GradientDrawable) drawable).setColor(color);
    } else if (drawable instanceof ColorDrawable) {
        ((ColorDrawable) drawable).setColor(color);
    } else if (drawable instanceof LayerDrawable) {
        LayerDrawable layerDrawable = (LayerDrawable) drawable;
        RotateDrawable rotateDrawable =
                (RotateDrawable) layerDrawable.findDrawableByLayerId(R.id.carrot_shape_top);
        setColor(rotateDrawable.getDrawable(),color);
    } else if (drawable instanceof RotateDrawable) {
        setColor(((RotateDrawable) drawable).getDrawable(),color);
    }
}
项目:Leanplum-Android-SDK    文件BitmapUtil.java   
private static Drawable getBackground(int normalStateColor,int pressedStateColor) {
  StateListDrawable background = new StateListDrawable();
  int c = SizeUtil.dp10;
  float[] r = new float[] {c,c,c};
  RoundRectShape rr = new RoundRectShape(r,null);
  ShapeDrawable cd = new ShapeDrawable();
  cd.setShape(rr);
  cd.getPaint().setColor(pressedStateColor);
  background.addState(new int[] {android.R.attr.state_pressed,android.R.attr.state_focused},cd);
  background.addState(new int[] {-android.R.attr.state_pressed,cd);
  background.addState(new int[] {android.R.attr.state_pressed,-android.R.attr.state_focused},cd);
  ShapeDrawable cd1 = new ShapeDrawable();
  cd1.setShape(rr);
  cd1.getPaint().setColor(normalStateColor);
  background.addState(new int[] {-android.R.attr.state_pressed,cd1);
  return background;
}
项目:Leanplum-Android-SDK    文件BaseMessageDialog.java   
@SuppressWarnings("deprecation")
private ImageView createBackgroundImageView(Context context,boolean fullscreen) {
  BackgroundImageView view = new BackgroundImageView(context,fullscreen);
  view.setScaleType(ImageView.ScaleType.CENTER_CROP);
  int cornerRadius;
  if (!fullscreen) {
    cornerRadius = SizeUtil.dp20;
  } else {
    cornerRadius = 0;
  }
  view.setimageBitmap(options.getBackgroundImage());
  ShapeDrawable footerBackground = new ShapeDrawable();
  footerBackground.setShape(createRoundRect(cornerRadius));
  footerBackground.getPaint().setColor(options.getBackgroundColor());
  if (Build.VERSION.SDK_INT >= 16) {
    view.setBackground(footerBackground);
  } else {
    view.setBackgroundDrawable(footerBackground);
  }
  RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
      LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);
  view.setLayoutParams(layoutParams);
  return view;
}
项目:ChatExchange-old    文件Label.java   
private Drawable createRectDrawable(int color) {
    RoundRectShape shape = new RoundRectShape(
            new float[]{
                    mCornerRadius,null);
    ShapeDrawable shapeDrawable = new ShapeDrawable(shape);
    shapeDrawable.getPaint().setColor(color);
    return shapeDrawable;
}
项目:shortstories    文件BitmapUtil.java   
private static Bitmap getCircleIcon(
        Context context,@ColorInt int backgroundColor,int backgroundInset,@DrawableRes int iconResId,@ColorInt int iconColor,int iconInset) {
    Drawable[] layers = new Drawable[2];
    ShapeDrawable background = new ShapeDrawable(new ovalShape());
    background.getPaint().setColor(backgroundColor);
    Drawable icon = ContextCompat.getDrawable(context,iconResId);
    Drawable tintedIcon = DrawableCompat.wrap(icon.mutate());
    DrawableCompat.setTint(tintedIcon,iconColor);
    layers[0] = background;
    layers[1] = tintedIcon;
    LayerDrawable layerDrawable = new LayerDrawable(layers);
    layerDrawable.setLayerInset(1,iconInset,iconInset);
    layerDrawable.setLayerInset(0,backgroundInset,backgroundInset);
    return drawabletoBitmap(layerDrawable);
}
项目:Watermark    文件MediaActivity.java   
private StateListDrawable createDefaultOverButtonBgDrawable() {
    int dp12 = (int) ThemeUtils.applyDimensionDp(this,12.f);
    int dp8 = (int) ThemeUtils.applyDimensionDp(this,8.f);
    float dp4 = ThemeUtils.applyDimensionDp(this,4.f);
    float[] round = new float[]{dp4,dp4,dp4};
    ShapeDrawable pressedDrawable = new ShapeDrawable(new RoundRectShape(round,null));
    pressedDrawable.setPadding(dp12,dp8,dp12,dp8);
    int pressedColor = ThemeUtils.resolveColor(this,R.attr.gallery_toolbar_over_button_pressed_color,R.color.gallery_default_toolbar_over_button_pressed_color);
    pressedDrawable.getPaint().setColor(pressedColor);

    int normalColor = ThemeUtils.resolveColor(this,R.attr.gallery_toolbar_over_button_normal_color,R.color.gallery_default_toolbar_over_button_normal_color);
    ShapeDrawable normalDrawable = new ShapeDrawable(new RoundRectShape(round,null));
    normalDrawable.setPadding(dp12,dp8);
    normalDrawable.getPaint().setColor(normalColor);

    StateListDrawable stateListDrawable = new StateListDrawable();
    stateListDrawable.addState(new int[]{android.R.attr.state_pressed},pressedDrawable);
    stateListDrawable.addState(new int[]{},normalDrawable);

    return stateListDrawable;
}
项目:photo-editor-android    文件ColorPickerAdapter.java   
private void buildColorPickerView(View view,int colorCode) {
    view.setVisibility(View.VISIBLE);

    ShapeDrawable biggerCircle = new ShapeDrawable(new ovalShape());
    biggerCircle.setIntrinsicHeight(20);
    biggerCircle.setIntrinsicWidth(20);
    biggerCircle.setBounds(new Rect(0,20,20));
    biggerCircle.getPaint().setColor(colorCode);

    ShapeDrawable smallerCircle = new ShapeDrawable(new ovalShape());
    smallerCircle.setIntrinsicHeight(5);
    smallerCircle.setIntrinsicWidth(5);
    smallerCircle.setBounds(new Rect(0,5,5));
    smallerCircle.getPaint().setColor(Color.WHITE);
    smallerCircle.setPadding(10,10,10);
    Drawable[] drawables = {smallerCircle,biggerCircle};

    LayerDrawable layerDrawable = new LayerDrawable(drawables);

    view.setBackgroundDrawable(layerDrawable);
}
项目:From-design-to-Android-part1    文件OrderDialogFragment.java   
private Drawable createProductimageDrawable(Product product) {
    final ShapeDrawable background = new ShapeDrawable();
    background.setShape(new ovalShape());
    background.getPaint().setColor(ContextCompat.getColor(getContext(),product.image));

    final LayerDrawable layerDrawable = new LayerDrawable
        (new Drawable[]{background,padding);

    return layerDrawable;
}
项目:GitHub    文件CircleProgressBar.java   
/**
 * Update the background color of the mBgCircle image view.
 */
public void setBackgroundColor(int colorRes) {
    if (getBackground() instanceof ShapeDrawable) {
        final Resources res = getResources();
        ((ShapeDrawable) getBackground()).getPaint().setColor(res.getColor(colorRes));
    }
}
项目:GitHub    文件Drawableutils.java   
private static Drawable getRippleMask(@ColorInt int color) {
    float[] outerRadii = new float[8];
    // 3 is the radius of final ripple,instead of 3 we can give required final radius
    Arrays.fill(outerRadii,3);
    RoundRectShape r = new RoundRectShape(outerRadii,null);
    ShapeDrawable shapeDrawable = new ShapeDrawable(r);
    shapeDrawable.getPaint().setColor(color);
    return shapeDrawable;
}
项目:AdplayBanner    文件PointView.java   
private void change() {
    float[] outerR = new float[]{mSize / 2,mSize / 2,mSize / 2};
    Shape shape = new RoundRectShape(outerR,null);
    ShapeDrawable shapeDrawable = new ShapeDrawable(shape);
    shapeDrawable.setIntrinsicHeight((int) mSize);
    shapeDrawable.setIntrinsicWidth((int) mSize);
    shapeDrawable.setPadding(0,0);
    shapeDrawable.getPaint().setColor(mColor);
    shapeDrawable.getPaint().setStyle(Paint.Style.FILL);
    setBackgroundDrawable(shapeDrawable);
    setHeight((int) mSize);
    setMinWidth((int) mSize);
}
项目:androidShader_rippleView_radarView    文件MyGradientView.java   
/**
     * 位图图像渲染
     * @param canvas
     */
    private void studyBitmapShader(Canvas canvas) {
        //创建BitmapShader
        //其中TileMode.MIRROR x方向镜像  TileMode.REPEAT y方向重复
        mBitmapShader = new BitmapShader(mBitMap,Shader.TileMode.MIRROR,Shader.TileMode.REPEAT);

        //创建矩阵   来缩放图片
        Matrix matrix = new Matrix();
        matrix.setScale(0.2f,0.2f);
        mBitmapShader.setLocalMatrix(matrix);

        mPaint.setAntiAlias(true);
        mPaint.setShader(mBitmapShader);

        //画圆形的图片
//        canvas.drawCircle(mBitMap.getWidth()/2,mBitMap.getHeight()/2,300,mPaint);

        //画矩形的图片
//        Rect rect = new Rect(0,600,600);
//        canvas.drawRect(rect,mPaint);
//
        //画椭圆的图片
//        RectF rectf = new RectF(0,400,300);
//
//        canvas.drawoval(rectf,mPaint);

        //用shapeDrawable 实现圆形图片
        ShapeDrawable shapeDrawable = new ShapeDrawable(new ovalShape());
        shapeDrawable.getPaint().setShader(mBitmapShader);
        shapeDrawable.setBounds(0,400);
        shapeDrawable.draw(canvas);

    }
项目:GitHub    文件MaterialProgressDrawable.java   
private void setUp(final double diameter) {
    PtrLocaldisplay.init(mParent.getContext());
    final int shadowYOffset = PtrLocaldisplay.dp2px(Y_OFFSET);
    final int shadowXOffset = PtrLocaldisplay.dp2px(X_OFFSET);
    int mShadowRadius = PtrLocaldisplay.dp2px(SHADOW_RADIUS);
    ovalShape oval = new ovalShadow(mShadowRadius,(int) diameter);
    mShadow = new ShapeDrawable(oval);
    if (Build.VERSION.SDK_INT >= 11) {
        mParent.setLayerType(View.LAYER_TYPE_SOFTWARE,mShadow.getPaint());
    }
    mShadow.getPaint().setShadowLayer(mShadowRadius,KEY_SHADOW_COLOR);
}
项目:MaterialAbout    文件RippleUtil.java   
private static Drawable getRippleMask(int color) {
    float[] outerRadii = new float[8];
    // 3 is radius of final ripple,// instead of 3 you can give required final radius
    Arrays.fill(outerRadii,3);

    RoundRectShape r = new RoundRectShape(outerRadii,null);
    ShapeDrawable shapeDrawable = new ShapeDrawable(r);
    shapeDrawable.getPaint().setColor(color);

    return shapeDrawable;
}
项目:SingleSelectBar    文件ResHelper.java   
private Drawable getpressedEffectBeforeLollipop(CORNER_POSITION cornerPosition,int color) {
    ShapeDrawable colorDrawablepressed = getCornerStateDrawable(cornerPosition);
    colorDrawablepressed.getPaint().setColor(color);
    colorDrawablepressed.getPaint().setStyle(Paint.Style.FILL);
    colorDrawablepressed.getPaint().setAlpha(pressed_ALPHA_VALUE);
    colorDrawablepressed.mutate();

    StateListDrawable textBgDrawable = new StateListDrawable();
    textBgDrawable.addState(new int[]{android.R.attr.state_enabled,android.R.attr.state_pressed},colorDrawablepressed);
    return textBgDrawable;
}
项目:Multi-SwipetoRefreshLayout    文件CircleProgressBar.java   
/**
 * Update the background color of the mBgCircle image view.
 */
public void setBackgroundColor(@ColorRes int colorRes) {
    if (getBackground() instanceof ShapeDrawable) {
        ((ShapeDrawable) getBackground())
                .getPaint()
                .setColor(getResources().getColor(colorRes));
    }
}
项目:Swface    文件MaterialProgressDrawable.java   
private void setUp(final double diameter) {
    PtrLocaldisplay.init(mParent.getContext());
    final int shadowYOffset = PtrLocaldisplay.dp2px(Y_OFFSET);
    final int shadowXOffset = PtrLocaldisplay.dp2px(X_OFFSET);
    int mShadowRadius = PtrLocaldisplay.dp2px(SHADOW_RADIUS);
    ovalShape oval = new ovalShadow(mShadowRadius,KEY_SHADOW_COLOR);
}
项目:SmoothRefreshLayout    文件MaterialProgressDrawable.java   
private void setUp(final double diameter) {
    final int shadowYOffset = PixelUtl.dp2px(mParent.getContext(),Y_OFFSET);
    final int shadowXOffset = PixelUtl.dp2px(mParent.getContext(),X_OFFSET);
    int mShadowRadius = PixelUtl.dp2px(mParent.getContext(),SHADOW_RADIUS);
    ovalShape oval = new ovalShadow(mShadowRadius,KEY_SHADOW_COLOR);
}
项目:RLibrary    文件ResUtil.java   
public static Drawable generateCircleBgDrawable(float width,int color) {
    Shape arcShape = new ArcShape(0,360);
    ShapeDrawable shopDrawablePress = new ShapeDrawable(arcShape);//圆形shape
    shopDrawablePress.getPaint().setColor(color);//设置颜色
    shopDrawablePress.getPaint().setStyle(Paint.Style.stroke);//设置颜色
    shopDrawablePress.getPaint().setstrokeWidth(width);//设置颜色
    return shopDrawablePress;
}
项目:RLibrary    文件ResUtil.java   
/**
 * 创建一个框框的Drawable
 */
public static Drawable createstrokeDrawable(int color,float radii,float borderWidth) {
    float[] ouTradii = new float[]{radii,radii,radii};//四个角的 圆角幅度,8个可以设置的值,每个角都有2个边 2*4=8个
    RectF inset = new RectF(borderWidth,borderWidth);
    Shape roundRectShape = new RoundRectShape(ouTradii,inset,ouTradii);//圆角背景
    ShapeDrawable shapeDrawable = new ShapeDrawable(roundRectShape);//圆角shape
    shapeDrawable.getPaint().setColor(color);//设置颜色
    return shapeDrawable;
}
项目:GmarchMvvm    文件GmRipple.java   
@NonNull
public static Drawable getSelectableDrawableFor(int color) {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
        StateListDrawable stateListDrawable = new StateListDrawable();
        stateListDrawable.addState(
                new int[]{android.R.attr.state_pressed},new ColorDrawable(lightenorDarken(color,0.40D))
        );
        stateListDrawable.addState(
                new int[]{android.R.attr.state_focused},0.80D))
        );
        stateListDrawable.addState(
                new int[]{},new ColorDrawable(color)
        );
        return stateListDrawable;
    } else {
        ColorStateList pressedColor = ColorStateList.valueOf(lightenorDarken(color,0.4D));
        ColorDrawable defaultColor = new ColorDrawable(color);
        ShapeDrawable shapeDrawable = (ShapeDrawable) getShapeWithColor(color);
        Drawable rippleColor = getRippleColor(color);
        return new rippledrawable(
                pressedColor,shapeDrawable,rippleColor
        );
    }
}
项目:MyCalendar    文件FloatingActionButtonLibrary.java   
private Drawable createInnerstrokesDrawable(final int color,float strokeWidth) {
  if (!mstrokeVisible) {
    return new ColorDrawable(Color.TRANSPARENT);
  }

  ShapeDrawable shapeDrawable = new ShapeDrawable(new ovalShape());

  final int bottomstrokeColor = darkenColor(color);
  final int bottomstrokeColorHalfTransparent = halfTransparent(bottomstrokeColor);
  final int topstrokeColor = lightenColor(color);
  final int topstrokeColorHalfTransparent = halfTransparent(topstrokeColor);

  final Paint paint = shapeDrawable.getPaint();
  paint.setAntiAlias(true);
  paint.setstrokeWidth(strokeWidth);
  paint.setStyle(Style.stroke);
  shapeDrawable.setShaderFactory(new ShaderFactory() {
    @Override
    public Shader resize(int width,int height) {
      return new LinearGradient(width / 2,width / 2,new int[] { topstrokeColor,topstrokeColorHalfTransparent,color,bottomstrokeColorHalfTransparent,bottomstrokeColor },new float[] { 0f,0.2f,0.5f,0.8f,1f },TileMode.CLAMP
      );
    }
  });

  return shapeDrawable;
}
项目:RLibrary    文件TabLayoutUtil.java   
public static void setCommonTabDivider(CommonTabLayout tabLayout,@ColorInt int color,int showDividers,int padding) {
    LinearLayout linearLayout = (LinearLayout) tabLayout.getChildAt(0);
    linearLayout.setDividerPadding(padding);
    RectShape rectShape = new RectShape();
    float density = tabLayout.getResources().getdisplayMetrics().density;
    ShapeDrawable shapeDrawable = new ShapeDrawable(rectShape);
    shapeDrawable.setIntrinsicWidth((int) density);
    shapeDrawable.setIntrinsicHeight((int) density);
    shapeDrawable.getPaint().setColor(color);
    shapeDrawable.getPaint().setStyle(Paint.Style.stroke);
    linearLayout.setDividerDrawable(shapeDrawable);
    linearLayout.setShowDividers(showDividers);
}
项目:CalendarPicker    文件MyConfig.java   
public static void setDrawableColor(Drawable v,Integer customColor){

        if(customColor != null) {
            if (v instanceof ShapeDrawable) {
                ((ShapeDrawable)v).getPaint().setColor(customColor);
            } else if (v instanceof GradientDrawable) {
                ((GradientDrawable)v).setColor(customColor);
            } else if (v instanceof ColorDrawable) {
                ((ColorDrawable)v).setColor(customColor);
            }
        }
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。