package com.marshalchen.common.uimodule.customshapeimageview.widget;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.util.AttributeSet;
import com.marshalchen.common.uimodule.R;
/**
* Created by Mostafa Gazar on 11/2/13.
*/
public class CustomShapeImageView extends BaseImageView {
public static class Shape {
public static final int CIRCLE = 1;
public static final int RECTANGLE = 2;
public static final int SVG = 3;
}
private int mShape = Shape.CIRCLE;
private int mSvgRawResourceId;
public CustomShapeImageView(Context context) {
super(context);
}
public CustomShapeImageView(Context context, int resourceId, int shape, int svgRawResourceId) {
this(context);
setImageResource(resourceId);
mShape = shape;
mSvgRawResourceId = svgRawResourceId;
}
public CustomShapeImageView(Context context, AttributeSet attrs) {
super(context, attrs);
sharedConstructor(context, attrs);
}
public CustomShapeImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
sharedConstructor(context, attrs);
}
private void sharedConstructor(Context context, AttributeSet attrs) {
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CustomShapeImageView);
mShape = a.getInt(R.styleable.CustomShapeImageView_shape_custom, Shape.CIRCLE);
mSvgRawResourceId = a.getResourceId(R.styleable.CustomShapeImageView_svg_raw_resource, 0);
a.recycle();
}
@Override
public Bitmap getBitmap() {
switch (mShape) {
case Shape.CIRCLE:
return CircleImageView.getBitmap(getWidth(), getHeight());
case Shape.RECTANGLE:
return RectangleImageView.getBitmap(getWidth(), getHeight());
case Shape.SVG:
return SvgImageView.getBitmap(mContext, getWidth(), getHeight(), mSvgRawResourceId);
}
return null;
}
}