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;
}
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);
}
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;
}
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);
}
Aggregations