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; public class SquareCanvas { private final SquareUtils mSquareUtils; private final AvatarBorder mAvatarBorder; private final Canvas mCanvas; public SquareCanvas(SquareUtils squareUtils, AvatarBorder avatarBorder, Canvas canvas) { mSquareUtils = squareUtils; mAvatarBorder = avatarBorder; mCanvas = canvas; mCanvas.drawColor(avatarBorder.getColor()); } public void drawBitmap(Bitmap bitmap) { Bitmap scaledBitmap = mSquareUtils.createScaledBitmap(bitmap, mCanvas.getWidth(), mCanvas.getHeight()); mCanvas.drawBitmap(scaledBitmap, 0f, 0f, null); scaledBitmap.recycle(); } public void drawBitmapLeft(Bitmap bitmap) { Bitmap scaledBitmap = mSquareUtils.createScaledBitmap(bitmap, getNewWidth(), mCanvas.getHeight()); mCanvas.drawBitmap(scaledBitmap, 0f, 0f, null); scaledBitmap.recycle(); } public void drawBitmapLeftTop(Bitmap bitmap) { Bitmap scaledBitmap = mSquareUtils.createScaledBitmap(bitmap, getNewWidth(), getNewHeight()); mCanvas.drawBitmap(scaledBitmap, 0f, 0f, null); scaledBitmap.recycle(); } public void drawBitmapLeftBottom(Bitmap bitmap) { Bitmap scaledBitmap = mSquareUtils.createScaledBitmap(bitmap, getNewWidth(), getNewHeight()); mCanvas.drawBitmap(scaledBitmap, 0f, getBottomPosition(), null); scaledBitmap.recycle(); } public void drawBitmapRight(Bitmap bitmap) { Bitmap scaledBitmap = mSquareUtils.createScaledBitmap(bitmap, getNewWidth(), mCanvas.getHeight()); mCanvas.drawBitmap(scaledBitmap, getRightPosition(), 0f, null); scaledBitmap.recycle(); } public void drawBitmapRightTop(Bitmap bitmap) { Bitmap scaledBitmap = mSquareUtils.createScaledBitmap(bitmap, getNewWidth(), getNewHeight()); mCanvas.drawBitmap(scaledBitmap, getRightPosition(), 0f, null); scaledBitmap.recycle(); } public void drawBitmapRightBottom(Bitmap bitmap) { Bitmap scaledBitmap = mSquareUtils.createScaledBitmap(bitmap, getNewWidth(), getNewHeight()); mCanvas.drawBitmap(scaledBitmap, getRightPosition(), getBottomPosition(), null); scaledBitmap.recycle(); } private int getHalfBorderWidth() { return mAvatarBorder.getSquareWidth() / 2; } private int getNewWidth() { return (mCanvas.getWidth() / 2) - getHalfBorderWidth(); } private int getNewHeight() { return (mCanvas.getHeight() / 2) - getHalfBorderWidth(); } private int getRightPosition() { return (mCanvas.getWidth() / 2) + mAvatarBorder.getSquareWidth(); } private int getBottomPosition() { return (mCanvas.getHeight() / 2) + mAvatarBorder.getSquareWidth(); } }