package com.aviary.android.feather.graphics; import android.content.Context; import android.content.res.Resources; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.ColorFilter; import android.graphics.Paint; import android.graphics.PixelFormat; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.graphics.drawable.StateListDrawable; import com.aviary.android.feather.R; import com.aviary.android.feather.widget.Gallery; /** * Default Drawable used for all the Views created inside a {@link Gallery}.<br/ > * This drawable will only draw the default background based on the pressed state.<br /> * Note that this {@link Drawable} should be used inside a {@link StateListDrawable} instance. * * @author alessandro * */ public class DefaultGalleryCheckboxDrawable extends Drawable { private Paint mPaint; protected Rect mRect; private int backgroundColor; // 0xFF2e2e2e - 0xFF404040 private int borderColor; // 0xff535353 - 0xFF626262 /** * Instantiates a new default gallery checkbox drawable. * * @param res * {@link Context} resource manager * @param pressed * pressed state. it will affect the background colors */ public DefaultGalleryCheckboxDrawable( Resources res, boolean pressed ) { super(); mPaint = new Paint( Paint.ANTI_ALIAS_FLAG ); mRect = new Rect(); if ( pressed ) { backgroundColor = res.getColor( R.color.feather_crop_adapter_background_selected ); borderColor = res.getColor( R.color.feather_crop_adapter_border_selected ); } else { backgroundColor = res.getColor( R.color.feather_crop_adapter_background_normal ); borderColor = res.getColor( R.color.feather_crop_adapter_border_normal ); } } /* * (non-Javadoc) * * @see android.graphics.drawable.Drawable#draw(android.graphics.Canvas) */ @Override public void draw( Canvas canvas ) { copyBounds( mRect ); mPaint.setColor( backgroundColor ); canvas.drawPaint( mPaint ); mPaint.setColor( Color.BLACK ); canvas.drawRect( 0, 0, 1, mRect.bottom, mPaint ); canvas.drawRect( mRect.right - 1, 0, mRect.right, mRect.bottom, mPaint ); mPaint.setColor( borderColor ); canvas.drawRect( 1, 0, 3, mRect.bottom, mPaint ); } /* * (non-Javadoc) * * @see android.graphics.drawable.Drawable#getOpacity() */ @Override public int getOpacity() { return PixelFormat.TRANSLUCENT; } /* * (non-Javadoc) * * @see android.graphics.drawable.Drawable#setAlpha(int) */ @Override public void setAlpha( int alpha ) {} /* * (non-Javadoc) * * @see android.graphics.drawable.Drawable#setColorFilter(android.graphics.ColorFilter) */ @Override public void setColorFilter( ColorFilter cf ) {} }