Search in sources :

Example 1 with MoaActionList

use of com.aviary.android.feather.library.moa.MoaActionList in project mobile-android by photo.

the class TextPanel method onApplyCurrent.

/**
	 * Flatten the view on the current image
	 * 
	 * @param hv
	 *           the hv
	 */
private MoaActionList onApplyCurrent(final DrawableHighlightView hv) {
    MoaActionList actionList = MoaActionFactory.actionList();
    if (hv != null) {
        setIsChanged(true);
        final RectF cropRect = hv.getCropRectF();
        final Rect rect = new Rect((int) cropRect.left, (int) cropRect.top, (int) cropRect.right, (int) cropRect.bottom);
        final Matrix rotateMatrix = hv.getCropRotationMatrix();
        final int w = mBitmap.getWidth();
        final int h = mBitmap.getHeight();
        final float left = cropRect.left / w;
        final float top = cropRect.top / h;
        final float right = cropRect.right / w;
        final float bottom = cropRect.bottom / h;
        final Matrix matrix = new Matrix(mImageView.getImageMatrix());
        if (!matrix.invert(matrix))
            mLogger.error("unable to invert matrix");
        EditableDrawable editable = (EditableDrawable) hv.getContent();
        editable.endEdit();
        mImageView.invalidate();
        MoaAction action = MoaActionFactory.action("addtext");
        action.setValue("text", (String) editable.getText());
        action.setValue("fillcolor", new MoaColorParameter(mColor));
        action.setValue("outlinecolor", new MoaColorParameter(mStrokeColor));
        action.setValue("rotation", hv.getRotation());
        action.setValue("topleft", new MoaPointParameter(left, top));
        action.setValue("bottomright", new MoaPointParameter(right, bottom));
        actionList.add(action);
        final int saveCount = mCanvas.save(Canvas.MATRIX_SAVE_FLAG);
        mCanvas.concat(rotateMatrix);
        hv.getContent().setBounds(rect);
        hv.getContent().draw(mCanvas);
        mCanvas.restoreToCount(saveCount);
        mImageView.invalidate();
        onClearCurrent(hv);
    }
    onPreviewChanged(mPreview, false);
    return actionList;
}
Also used : RectF(android.graphics.RectF) Rect(android.graphics.Rect) Matrix(android.graphics.Matrix) MoaColorParameter(com.aviary.android.feather.library.moa.MoaColorParameter) MoaActionList(com.aviary.android.feather.library.moa.MoaActionList) EditableDrawable(com.aviary.android.feather.library.graphics.drawable.EditableDrawable) MoaPointParameter(com.aviary.android.feather.library.moa.MoaPointParameter) MoaAction(com.aviary.android.feather.library.moa.MoaAction) Paint(android.graphics.Paint)

Example 2 with MoaActionList

use of com.aviary.android.feather.library.moa.MoaActionList in project mobile-android by photo.

the class TextPanel method onGenerateResult.

/*
	 * (non-Javadoc)
	 * 
	 * @see com.aviary.android.feather.effects.AbstractEffectPanel#onGenerateResult()
	 */
@Override
protected void onGenerateResult() {
    MoaActionList actions = onApplyCurrent();
    super.onGenerateResult(actions);
}
Also used : MoaActionList(com.aviary.android.feather.library.moa.MoaActionList)

Example 3 with MoaActionList

use of com.aviary.android.feather.library.moa.MoaActionList in project mobile-android by photo.

the class TextPanel method onApplyCurrent.

/**
	 * apply the current text and flatten it over the image.
	 */
private MoaActionList onApplyCurrent() {
    final MoaActionList nullActions = MoaActionFactory.actionList();
    final ImageViewDrawableOverlay image = (ImageViewDrawableOverlay) mImageView;
    if (image.getHighlightCount() < 1)
        return nullActions;
    final DrawableHighlightView hv = ((ImageViewDrawableOverlay) mImageView).getHighlightViewAt(0);
    if (hv != null) {
        if (hv.getContent() instanceof EditableDrawable) {
            EditableDrawable editable = (EditableDrawable) hv.getContent();
            if (editable != null) {
                if (editable.isTextHint()) {
                    setIsChanged(false);
                    return nullActions;
                }
            }
        }
        return onApplyCurrent(hv);
    }
    return nullActions;
}
Also used : ImageViewDrawableOverlay(com.aviary.android.feather.widget.ImageViewDrawableOverlay) MoaActionList(com.aviary.android.feather.library.moa.MoaActionList) EditableDrawable(com.aviary.android.feather.library.graphics.drawable.EditableDrawable) DrawableHighlightView(com.aviary.android.feather.widget.DrawableHighlightView)

Example 4 with MoaActionList

use of com.aviary.android.feather.library.moa.MoaActionList in project mobile-android by photo.

the class MemePanel method onGenerateResult.

/*
	 * (non-Javadoc)
	 * 
	 * @see com.aviary.android.feather.effects.AbstractEffectPanel#onGenerateResult()
	 */
@Override
protected void onGenerateResult() {
    MemeFilter filter = (MemeFilter) FilterLoaderFactory.get(Filters.MEME);
    flattenText(topHv, filter);
    flattenText(bottomHv, filter);
    MoaActionList actionList = (MoaActionList) filter.getActions().clone();
    super.onGenerateResult(actionList);
}
Also used : MemeFilter(com.aviary.android.feather.library.filters.MemeFilter) MoaActionList(com.aviary.android.feather.library.moa.MoaActionList)

Aggregations

MoaActionList (com.aviary.android.feather.library.moa.MoaActionList)4 EditableDrawable (com.aviary.android.feather.library.graphics.drawable.EditableDrawable)2 Matrix (android.graphics.Matrix)1 Paint (android.graphics.Paint)1 Rect (android.graphics.Rect)1 RectF (android.graphics.RectF)1 MemeFilter (com.aviary.android.feather.library.filters.MemeFilter)1 MoaAction (com.aviary.android.feather.library.moa.MoaAction)1 MoaColorParameter (com.aviary.android.feather.library.moa.MoaColorParameter)1 MoaPointParameter (com.aviary.android.feather.library.moa.MoaPointParameter)1 DrawableHighlightView (com.aviary.android.feather.widget.DrawableHighlightView)1 ImageViewDrawableOverlay (com.aviary.android.feather.widget.ImageViewDrawableOverlay)1