use of com.aviary.android.feather.library.moa.MoaPointParameter 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;
}
Aggregations