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, iconInset, iconInset);
layerDrawable.setLayerInset(0, backgroundInset, backgroundInset, backgroundInset, backgroundInset);
return drawableToBitmap(layerDrawable);
}
java类android.graphics.drawable.LayerDrawable的实例源码
BitmapUtil.java 文件源码
项目:shortstories
阅读 32
收藏 0
点赞 0
评论 0
ColorPickerAdapter.java 文件源码
项目:photo-editor-android
阅读 27
收藏 0
点赞 0
评论 0
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, 0, 20, 20));
biggerCircle.getPaint().setColor(colorCode);
ShapeDrawable smallerCircle = new ShapeDrawable(new OvalShape());
smallerCircle.setIntrinsicHeight(5);
smallerCircle.setIntrinsicWidth(5);
smallerCircle.setBounds(new Rect(0, 0, 5, 5));
smallerCircle.getPaint().setColor(Color.WHITE);
smallerCircle.setPadding(10, 10, 10, 10);
Drawable[] drawables = {smallerCircle, biggerCircle};
LayerDrawable layerDrawable = new LayerDrawable(drawables);
view.setBackgroundDrawable(layerDrawable);
}
ImagePickerImageView.java 文件源码
项目:RLibrary
阅读 28
收藏 0
点赞 0
评论 0
private void setColor(Drawable drawable, @ColorInt int color) {
if (drawable != null) {
if (drawable instanceof LayerDrawable) {
// LayerDrawable layerDrawable = (LayerDrawable) drawable;
// int numberOfLayers = layerDrawable.getNumberOfLayers();
//// if (numberOfLayers > 0) {
//// setColor((layerDrawable).getDrawable(numberOfLayers - 1), color);
//// }
// for (int i = 0; i < numberOfLayers; i++) {
// setColor((layerDrawable).getDrawable(i), color);
// }
mShowMask = true;
postInvalidate();
// layerDrawable.setColorFilter(color, PorterDuff.Mode.MULTIPLY);
} else {
drawable.mutate().setColorFilter(color, PorterDuff.Mode.MULTIPLY);
}
}
}
OrderDialogFragment.java 文件源码
项目:From-design-to-Android-part1
阅读 28
收藏 0
点赞 0
评论 0
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, padding, padding);
return layerDrawable;
}
RateUsDialog.java 文件源码
项目:android-mvp-architecture
阅读 28
收藏 0
点赞 0
评论 0
@Override
protected void setUp(View view) {
mRatingMessageView.setVisibility(View.GONE);
mPlayStoreRatingView.setVisibility(View.GONE);
LayerDrawable stars = (LayerDrawable) mRatingBar.getProgressDrawable();
stars.getDrawable(2)
.setColorFilter(ContextCompat.getColor(getContext(), R.color.yellow), PorterDuff.Mode.SRC_ATOP);
stars.getDrawable(0)
.setColorFilter(ContextCompat.getColor(getContext(), R.color.shadow), PorterDuff.Mode.SRC_ATOP);
stars.getDrawable(1)
.setColorFilter(ContextCompat.getColor(getContext(), R.color.shadow), PorterDuff.Mode.SRC_ATOP);
mSubmitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mPresenter.onRatingSubmitted(mRatingBar.getRating(), mMessage.getText().toString());
}
});
}
PopupMenu.java 文件源码
项目:FloatingApps
阅读 27
收藏 0
点赞 0
评论 0
public void showAtLocation(final View v, int x, int y) {
final PopupMenu that = this;
this.window.setOnDismissListener(new PopupWindow.OnDismissListener() {
public void onDismiss() {
that.main_layout.removeAllViews();
}
});
this.main_layout = new LinearLayout(this.ctx);
LayerDrawable layerDrawable = new LayerDrawable(new Drawable[] { (NinePatchDrawable)this.ctx.getResources().getDrawable(android.R.drawable.dialog_frame), new ColorDrawable(Color.WHITE) });
layerDrawable.setLayerInset(0, Utils.dip2px(this.ctx, 5), Utils.dip2px(this.ctx, 5) + 3, Utils.dip2px(this.ctx, 5), Utils.dip2px(this.ctx, 5));
this.main_layout.setBackgroundDrawable(layerDrawable);
this.main_layout.addView(this.contentViewLayout);
this.window.setContentView(this.main_layout);
this.window.setWidth(this.width);
this.window.setHeight(this.height);
this.window.showAsDropDown(v, x, y);
}
RippleDrawable.java 文件源码
项目:StarchWindow
阅读 28
收藏 0
点赞 0
评论 0
public static void drawCircle(MaterialButton view, int width, int height, float x, float y, int color, int _color, float radius, int alpha, Drawable drawable) {
Bitmap bm = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bm);
final Paint paint = new Paint();
paint.setColor(_color);
paint.setAlpha(alpha);
paint.setAntiAlias(true);
canvas.drawCircle(x, y, radius, paint);
if(drawable != null) {
view.setBackgroundDrawable(new LayerDrawable(new Drawable[] {drawable, new BitmapDrawable(bm)}));
}
if(drawable == null) {
view.setBackgroundDrawable(new LayerDrawable(new Drawable[] {new ColorDrawable(color), new BitmapDrawable(bm)}));
}
}
RoundedDrawable.java 文件源码
项目:MaterialAbout
阅读 34
收藏 0
点赞 0
评论 0
public static Drawable fromDrawable(Drawable drawable) {
if (drawable != null) {
if (drawable instanceof RoundedDrawable) {
// just return if it's already a RoundedDrawable
return drawable;
} else if (drawable instanceof LayerDrawable) {
LayerDrawable ld = (LayerDrawable) drawable;
int num = ld.getNumberOfLayers();
// loop through layers to and change to RoundedDrawables if possible
for (int i = 0; i < num; i++) {
Drawable d = ld.getDrawable(i);
ld.setDrawableByLayerId(ld.getId(i), fromDrawable(d));
}
return ld;
}
// try to get a bitmap from the drawable and
Bitmap bm = drawableToBitmap(drawable);
if (bm != null) {
return new RoundedDrawable(bm);
}
}
return drawable;
}
FloatingActionButtonEclairMr1.java 文件源码
项目:boohee_v5.6
阅读 27
收藏 0
点赞 0
评论 0
void setBackgroundDrawable(ColorStateList backgroundTint, Mode backgroundTintMode, int rippleColor, int borderWidth) {
Drawable[] layers;
this.mShapeDrawable = DrawableCompat.wrap(createShapeDrawable());
DrawableCompat.setTintList(this.mShapeDrawable, backgroundTint);
if (backgroundTintMode != null) {
DrawableCompat.setTintMode(this.mShapeDrawable, backgroundTintMode);
}
this.mRippleDrawable = DrawableCompat.wrap(createShapeDrawable());
DrawableCompat.setTintList(this.mRippleDrawable, createColorStateList(rippleColor));
if (borderWidth > 0) {
this.mBorderDrawable = createBorderDrawable(borderWidth, backgroundTint);
layers = new Drawable[]{this.mBorderDrawable, this.mShapeDrawable, this.mRippleDrawable};
} else {
this.mBorderDrawable = null;
layers = new Drawable[]{this.mShapeDrawable, this.mRippleDrawable};
}
this.mContentBackground = new LayerDrawable(layers);
this.mShadowDrawable = new ShadowDrawableWrapper(this.mView.getResources(), this.mContentBackground, this.mShadowViewDelegate.getRadius(), this.mElevation, this.mElevation + this.mPressedTranslationZ);
this.mShadowDrawable.setAddPaddingForCorners(false);
this.mShadowViewDelegate.setBackgroundDrawable(this.mShadowDrawable);
}
ViewUtil.java 文件源码
项目:FullSizePopupSpinner
阅读 31
收藏 0
点赞 0
评论 0
static Drawable getRotateDrawable(final Drawable d, final int angle) {
return new LayerDrawable(new Drawable[]{d}) {
@Override
public void draw(final Canvas canvas) {
canvas.save();
canvas.rotate(angle, d.getBounds().width() / 2, d.getBounds().height() / 2);
super.draw(canvas);
canvas.restore();
}
};
}