/**
* galaxy inc.
* meetup client for android
*/
package com.galaxy.meetup.client.android.hangout;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.StateListDrawable;
/**
*
* @author sihai
*
*/
public class TargetDrawable {
public static final int STATE_ACTIVE[] = {
0x101009e, 0x10100a2
};
public static final int STATE_FOCUSED[] = {
0x101009e, 0x101009c
};
public static final int STATE_INACTIVE[] = {
0x101009e
};
private float mAlpha;
private Drawable mDrawable;
private float mScaleX;
private float mScaleY;
private float mTranslationX;
private float mTranslationY;
public TargetDrawable(Drawable drawable)
{
mTranslationX = 0.0F;
mTranslationY = 0.0F;
mScaleX = 1.0F;
mScaleY = 1.0F;
mAlpha = 1.0F;
mScaleX = getScaleX();
mScaleY = getScaleY();
mTranslationX = getX();
mTranslationY = getY();
mAlpha = getAlpha();
Drawable drawable1;
if(drawable != null)
drawable1 = drawable.mutate();
else
drawable1 = null;
mDrawable = drawable1;
if(mDrawable != null)
mDrawable.setBounds(0, 0, mDrawable.getIntrinsicWidth(), mDrawable.getIntrinsicHeight());
setState(STATE_INACTIVE);
}
public final void draw(Canvas canvas)
{
if(mDrawable != null)
{
canvas.save(1);
canvas.translate(mTranslationX, mTranslationY);
canvas.scale(mScaleX, mScaleY);
canvas.translate(-0.5F * (float)getWidth(), -0.5F * (float)getHeight());
mDrawable.setAlpha(Math.round(255F * mAlpha));
mDrawable.draw(canvas);
canvas.restore();
}
}
public float getAlpha()
{
return mAlpha;
}
public int getHeight()
{
int i;
if(mDrawable != null)
i = mDrawable.getIntrinsicHeight();
else
i = 0;
return i;
}
public float getScaleX()
{
return mScaleX;
}
public float getScaleY()
{
return mScaleY;
}
public int getWidth()
{
int i;
if(mDrawable != null)
i = mDrawable.getIntrinsicWidth();
else
i = 0;
return i;
}
public float getX()
{
return mTranslationX;
}
public float getY()
{
return mTranslationY;
}
public final boolean hasState()
{
if(!(mDrawable instanceof StateListDrawable));
return false;
}
public final boolean isValid()
{
boolean flag;
if(mDrawable != null)
flag = true;
else
flag = false;
return flag;
}
public final void setAlpha(float f)
{
mAlpha = f;
}
public final void setState(int ai[])
{
if(mDrawable instanceof StateListDrawable)
{
StateListDrawable statelistdrawable = (StateListDrawable)mDrawable;
statelistdrawable.setState(ai);
statelistdrawable.invalidateSelf();
}
}
public final void setX(float f)
{
mTranslationX = f;
}
public final void setY(float f)
{
mTranslationY = f;
}
}