package com.smartandroid.sa.avatars;
/*
* Copyright 2014 Pedro Álvarez Fernández <pedroafa@gmail.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
/**
* A Drawable that draws an oval with given {@link android.graphics.Bitmap}
* adding a border with a given color and width
*/
public class BorderedRoundedAvatarDrawable extends RoundedAvatarDrawable {
private final AvatarBorder mAvatarBorder;
public BorderedRoundedAvatarDrawable(AvatarBorder avatarBorder, Bitmap bitmap) {
super(bitmap);
mAvatarBorder = avatarBorder;
}
@Override
public void draw(Canvas canvas) {
float borderWidth = mAvatarBorder.getRoundWidth();
Paint paintBorder = new Paint();
paintBorder.setAntiAlias(true);
paintBorder.setColor(mAvatarBorder.getColor());
paintBorder.setStyle(Paint.Style.STROKE);
paintBorder.setStrokeWidth(borderWidth);
int viewWidth = getIntrinsicWidth() - ((int) borderWidth * 2);
int circleCenter = viewWidth / 2;
canvas.drawCircle(circleCenter + borderWidth, circleCenter + borderWidth, circleCenter + borderWidth - 4.0f,
paintBorder);
canvas.drawCircle(circleCenter + borderWidth, circleCenter + borderWidth, circleCenter, getPaint());
}
}