private Drawable createCircleDrawable(int color, float strokeWidth) {
int alpha = Color.alpha(color);
int opaqueColor = opaque(color);
ShapeDrawable fillDrawable = new ShapeDrawable(new OvalShape());
final Paint paint = fillDrawable.getPaint();
paint.setAntiAlias(true);
paint.setColor(opaqueColor);
Drawable[] layers = {
fillDrawable,
createInnerStrokesDrawable(opaqueColor, strokeWidth)
};
LayerDrawable drawable = alpha == 255 || !mStrokeVisible
? new LayerDrawable(layers)
: new TranslucentLayerDrawable(alpha, layers);
int halfStrokeWidth = (int) (strokeWidth / 2f);
drawable.setLayerInset(1, halfStrokeWidth, halfStrokeWidth, halfStrokeWidth, halfStrokeWidth);
return drawable;
}
java类android.graphics.drawable.shapes.OvalShape的实例源码
FloatingActionButton.java 文件源码
项目:Carbonizr
阅读 39
收藏 0
点赞 0
评论 0
DownloadNotificationService.java 文件源码
项目:AndroidChromium
阅读 33
收藏 0
点赞 0
评论 0
private Bitmap getLargeNotificationIcon(Bitmap bitmap) {
Resources resources = mContext.getResources();
int height = (int) resources.getDimension(android.R.dimen.notification_large_icon_height);
int width = (int) resources.getDimension(android.R.dimen.notification_large_icon_width);
final OvalShape circle = new OvalShape();
circle.resize(width, height);
final Paint paint = new Paint();
paint.setColor(ApiCompatibilityUtils.getColor(resources, R.color.google_blue_grey_500));
final Bitmap result = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(result);
circle.draw(canvas, paint);
float leftOffset = (width - bitmap.getWidth()) / 2f;
float topOffset = (height - bitmap.getHeight()) / 2f;
if (leftOffset >= 0 && topOffset >= 0) {
canvas.drawBitmap(bitmap, leftOffset, topOffset, null);
} else {
// Scale down the icon into the notification icon dimensions
canvas.drawBitmap(bitmap,
new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()),
new Rect(0, 0, width, height),
null);
}
return result;
}
CircleImageView.java 文件源码
项目:ZhiHuRiBao
阅读 39
收藏 0
点赞 0
评论 0
public CircleImageView(Context context, int color, final float radius) {
super(context);
final float density = getContext().getResources().getDisplayMetrics().density;
final int diameter = (int) (radius * density * 2);
final int shadowYOffset = (int) (density * Y_OFFSET);
final int shadowXOffset = (int) (density * X_OFFSET);
mShadowRadius = (int) (density * SHADOW_RADIUS);
ShapeDrawable circle;
if (elevationSupported()) {
circle = new ShapeDrawable(new OvalShape());
ViewCompat.setElevation(this, SHADOW_ELEVATION * density);
} else {
OvalShape oval = new OvalShadow(mShadowRadius, diameter);
circle = new ShapeDrawable(oval);
ViewCompat.setLayerType(this, ViewCompat.LAYER_TYPE_SOFTWARE, circle.getPaint());
circle.getPaint().setShadowLayer(mShadowRadius, shadowXOffset, shadowYOffset,
KEY_SHADOW_COLOR);
final int padding = (int) mShadowRadius;
// set padding so the inner image sits correctly within the shadow.
setPadding(padding, padding, padding, padding);
}
circle.getPaint().setColor(color);
setBackgroundDrawable(circle);
}
FloatingActionButton.java 文件源码
项目:android-chat-ui
阅读 38
收藏 0
点赞 0
评论 0
private Drawable createCircleDrawable(int color, float strokeWidth) {
int alpha = Color.alpha(color);
int opaqueColor = opaque(color);
ShapeDrawable fillDrawable = new ShapeDrawable(new OvalShape());
final Paint paint = fillDrawable.getPaint();
paint.setAntiAlias(true);
paint.setColor(opaqueColor);
Drawable[] layers = {
fillDrawable,
createInnerStrokesDrawable(opaqueColor, strokeWidth)
};
LayerDrawable drawable = alpha == 255 || !mStrokeVisible
? new LayerDrawable(layers)
: new TranslucentLayerDrawable(alpha, layers);
int halfStrokeWidth = (int) (strokeWidth / 2f);
drawable.setLayerInset(1, halfStrokeWidth, halfStrokeWidth, halfStrokeWidth, halfStrokeWidth);
return drawable;
}
DotWidget.java 文件源码
项目:FriendCircle
阅读 31
收藏 0
点赞 0
评论 0
private ShapeDrawable getDotBackground() {
ShapeDrawable drawable = null;
switch (mode) {
case ROUND_RECT:
int radius = dip2Pixels(dotRadius);
float[] outerRect = new float[] { radius, radius, radius, radius, radius, radius, radius, radius };
RoundRectShape rr = new RoundRectShape(outerRect, null, null);
drawable = new InnerShapeDrawableWithText(rr, dotText);
drawable.getPaint().setColor(dotColor);
break;
case CIRCLE:
OvalShape os = new OvalShape();
drawable = new InnerShapeDrawableWithText(os, dotText);
drawable.getPaint().setColor(dotColor);
// int paddingPixels = dip2Pixels(8);
// drawable.setPadding(paddingPixels, paddingPixels, paddingPixels,
// paddingPixels);
break;
}
return drawable;
}
CustomSettingView.java 文件源码
项目:MusicUU
阅读 21
收藏 0
点赞 0
评论 0
private void initColorLayout() {
float width = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 48, getContext().getResources().getDisplayMetrics());
mColorLayout.removeAllViews();
for(int i = 0, size = colors.length; i < size; i ++) {
ShapeDrawable shapeDrawable = new ShapeDrawable(new OvalShape());
shapeDrawable.setBounds(0, 0, (int) width, (int) width);
shapeDrawable.getPaint().setColor(colors[i]);
View view = new View(getContext());
view.setBackgroundDrawable(shapeDrawable);
view.setTag(colors[i]);
view.setOnClickListener(new ColorItemClickListener());
MarginLayoutParams layoutParams = new LayoutParams((int) width, (int) width);
layoutParams.setMargins((int) (width / 8), 0, (int) (width / 8), 0);
mColorLayout.addView(view, layoutParams);
}
}
ColorChooserDialog.java 文件源码
项目:Material-Color-Picker
阅读 36
收藏 0
点赞 0
评论 0
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
private void Colorize() {
for (int i = 0; i < buttons.size(); i++) {
ShapeDrawable d = new ShapeDrawable(new OvalShape());
d.setBounds(58, 58, 58, 58);
Log.e("Shape drown no", i + "");
buttons.get(i).setVisibility(View.INVISIBLE);
d.getPaint().setStyle(Paint.Style.FILL);
d.getPaint().setColor(colors.get(i));
buttons.get(i).setBackground(d);
}
animate();
}
CircleImageView.java 文件源码
项目:WheelViewPicker
阅读 32
收藏 0
点赞 0
评论 0
public CircleImageView(Context context, int color, final float radius) {
super(context);
final float density = getContext().getResources().getDisplayMetrics().density;
final int diameter = (int) (radius * density * 2);
final int shadowYOffset = (int) (density * Y_OFFSET);
final int shadowXOffset = (int) (density * X_OFFSET);
mShadowRadius = (int) (density * SHADOW_RADIUS);
ShapeDrawable circle;
if (elevationSupported()) {
circle = new ShapeDrawable(new OvalShape());
//ViewCompat.setElevation(this, SHADOW_ELEVATION * density);
} else {
OvalShape oval = new OvalShadow(mShadowRadius, diameter);
circle = new ShapeDrawable(oval);
ViewCompat.setLayerType(this, ViewCompat.LAYER_TYPE_SOFTWARE, circle.getPaint());
circle.getPaint().setShadowLayer(mShadowRadius, shadowXOffset, shadowYOffset,
KEY_SHADOW_COLOR);
final int padding = (int) mShadowRadius;
// set padding so the inner image sits correctly within the shadow.
setPadding(padding, padding, padding, padding);
}
circle.getPaint().setColor(color);
setBackgroundDrawable(circle);
}
MaterialBadgeTextView.java 文件源码
项目:JLibraryDemo
阅读 22
收藏 0
点赞 0
评论 0
/**
*
* @param isDisplayInToolbarMenu
*/
public void setHighLightMode(boolean isDisplayInToolbarMenu){
isHighLightMode = true;
ViewGroup.LayoutParams params = getLayoutParams();
params.width = dp2px(getContext(), 8);
params.height = params.width;
if(isDisplayInToolbarMenu && params instanceof FrameLayout.LayoutParams){
((FrameLayout.LayoutParams)params).topMargin=dp2px(getContext(), 8);
((FrameLayout.LayoutParams)params).rightMargin=dp2px(getContext(), 8);
}
setLayoutParams(params);
ShapeDrawable drawable = new ShapeDrawable(new OvalShape());
ViewCompat.setLayerType(this, ViewCompat.LAYER_TYPE_SOFTWARE, drawable.getPaint());
drawable.getPaint().setColor(backgroundColor);
drawable.getPaint().setAntiAlias(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
setBackground(drawable);
} else {
setBackgroundDrawable(drawable);
}
setText("");
setVisibility(View.VISIBLE);
}
CircleImageView.java 文件源码
项目:Mysplash
阅读 34
收藏 0
点赞 0
评论 0
public CircleImageView(Context context, int color, final float radius) {
super(context);
final float density = getContext().getResources().getDisplayMetrics().density;
final int diameter = (int) (radius * density * 2);
final int shadowYOffset = (int) (density * Y_OFFSET);
final int shadowXOffset = (int) (density * X_OFFSET);
mShadowRadius = (int) (density * SHADOW_RADIUS);
ShapeDrawable circle;
if (elevationSupported()) {
circle = new ShapeDrawable(new OvalShape());
ViewCompat.setElevation(this, SHADOW_ELEVATION * density);
} else {
OvalShape oval = new OvalShadow(mShadowRadius, diameter);
circle = new ShapeDrawable(oval);
ViewCompat.setLayerType(this, 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.
setPadding(padding, padding, padding, padding);
}
circle.getPaint().setColor(color);
setBackgroundDrawable(circle);
}