Search in sources :

Example 1 with MultiLineTextRenderer

use of org.signal.imageeditor.core.renderers.MultiLineTextRenderer in project Signal-Android by WhisperSystems.

the class ImageEditorFragment method addText.

protected void addText() {
    String initialText = "";
    int color = imageEditorHud.getActiveColor();
    MultiLineTextRenderer renderer = new MultiLineTextRenderer(initialText, color, MultiLineTextRenderer.Mode.REGULAR);
    EditorElement element = new EditorElement(renderer, EditorModel.Z_TEXT);
    imageEditorView.getModel().addElementCentered(element, 1);
    imageEditorView.invalidate();
    setCurrentSelection(element);
    startTextEntityEditing(element, true);
}
Also used : MultiLineTextRenderer(org.signal.imageeditor.core.renderers.MultiLineTextRenderer) EditorElement(org.signal.imageeditor.core.model.EditorElement) Paint(android.graphics.Paint) Point(android.graphics.Point)

Example 2 with MultiLineTextRenderer

use of org.signal.imageeditor.core.renderers.MultiLineTextRenderer in project Signal-Android by WhisperSystems.

the class MainActivity method initialModel.

private static EditorModel initialModel() {
    EditorModel model = EditorModel.create();
    EditorElement image = new EditorElement(new UrlRenderer("https://cdn.aarp.net/content/dam/aarp/home-and-family/your-home/2018/06/1140-house-inheriting.imgcache.rev68c065601779c5d76b913cf9ec3a977e.jpg"));
    image.getFlags().setSelectable(false).persist();
    model.addElement(image);
    EditorElement elementC = new EditorElement(new UrlRenderer("https://upload.wikimedia.org/wikipedia/commons/thumb/e/e0/SNice.svg/220px-SNice.svg.png"));
    elementC.getLocalMatrix().postScale(0.2f, 0.2f);
    // elementC.getLocalMatrix().postRotate(30);
    model.addElement(elementC);
    EditorElement elementE = new EditorElement(new UrlRenderer("https://www.vitalessentialsraw.com/assets/images/background-images/laying-grey-cat.png"));
    elementE.getLocalMatrix().postScale(0.2f, 0.2f);
    // elementE.getLocalMatrix().postRotate(60);
    model.addElement(elementE);
    EditorElement elementD = new EditorElement(new UrlRenderer("https://petspluslubbocktx.com/files/2016/11/DC-Cat-Weight-Management.png"));
    elementD.getLocalMatrix().postScale(0.2f, 0.2f);
    // elementD.getLocalMatrix().postRotate(60);
    model.addElement(elementD);
    EditorElement elementF = new EditorElement(new UrlRenderer("https://purepng.com/public/uploads/large/purepng.com-black-top-hathatsstandard-sizeblacktop-14215263591972x0zh.png"));
    elementF.getLocalMatrix().postScale(0.2f, 0.2f);
    // elementF.getLocalMatrix().postRotatF(60);
    model.addElement(elementF);
    EditorElement elementG = new EditorElement(new UriRenderer(Uri.parse("file:///android_asset/food/apple.png")));
    elementG.getLocalMatrix().postScale(0.2f, 0.2f);
    // elementG.getLocalMatrix().postRotatG(60);
    model.addElement(elementG);
    EditorElement elementH = new EditorElement(new MultiLineTextRenderer("Hello, World!", 0xff0000ff, MultiLineTextRenderer.Mode.REGULAR));
    // elementH.getLocalMatrix().postScale(0.2f, 0.2f);
    model.addElement(elementH);
    EditorElement elementH2 = new EditorElement(new MultiLineTextRenderer("Hello, World 2!", 0xff0000ff, MultiLineTextRenderer.Mode.REGULAR));
    // elementH.getLocalMatrix().postScale(0.2f, 0.2f);
    model.addElement(elementH2);
    return model;
}
Also used : EditorModel(org.signal.imageeditor.core.model.EditorModel) MultiLineTextRenderer(org.signal.imageeditor.core.renderers.MultiLineTextRenderer) EditorElement(org.signal.imageeditor.core.model.EditorElement) UrlRenderer(org.signal.imageeditor.app.renderers.UrlRenderer) UriRenderer(org.signal.imageeditor.app.renderers.UriRenderer)

Example 3 with MultiLineTextRenderer

use of org.signal.imageeditor.core.renderers.MultiLineTextRenderer in project Signal-Android by WhisperSystems.

the class MainActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_activity);
    Toolbar toolbar = findViewById(R.id.toolbar);
    toolbar.setTitle(R.string.app_name_short);
    setSupportActionBar(toolbar);
    imageEditorView = findViewById(R.id.image_editor);
    imageEditorView.setUndoRedoStackListener((undoAvailable, redoAvailable) -> {
        Log.d("ALAN", String.format("Undo/Redo available: %s, %s", undoAvailable ? "Y" : "N", redoAvailable ? "Y" : "N"));
        if (menu == null)
            return;
        MenuItem undo = menu.findItem(R.id.action_undo);
        MenuItem redo = menu.findItem(R.id.action_redo);
        if (undo != null)
            undo.setVisible(undoAvailable);
        if (redo != null)
            redo.setVisible(redoAvailable);
    });
    EditorModel model = null;
    if (savedInstanceState != null) {
        model = savedInstanceState.getParcelable("MODEL");
        Log.d("ALAN", "Restoring instance " + (model != null ? model.hashCode() : 0));
    }
    if (model == null) {
        model = initialModel();
        Log.d("ALAN", "New instance created " + model.hashCode());
    }
    imageEditorView.setModel(model);
    imageEditorView.setTapListener(new ImageEditorView.TapListener() {

        @Override
        public void onEntityDown(@Nullable EditorElement editorElement) {
            Log.d("ALAN", "Entity down " + editorElement);
        }

        @Override
        public void onEntitySingleTap(@Nullable EditorElement editorElement) {
            Log.d("ALAN", "Entity single tapped " + editorElement);
        }

        @Override
        public void onEntityDoubleTap(@NonNull EditorElement editorElement) {
            Log.d("ALAN", "Entity double tapped " + editorElement);
            if (editorElement.getRenderer() instanceof MultiLineTextRenderer) {
                imageEditorView.startTextEditing(editorElement);
            } else {
                imageEditorView.deleteElement(editorElement);
            }
        }
    });
}
Also used : EditorModel(org.signal.imageeditor.core.model.EditorModel) MultiLineTextRenderer(org.signal.imageeditor.core.renderers.MultiLineTextRenderer) EditorElement(org.signal.imageeditor.core.model.EditorElement) MenuItem(android.view.MenuItem) ImageEditorView(org.signal.imageeditor.core.ImageEditorView) Toolbar(androidx.appcompat.widget.Toolbar)

Example 4 with MultiLineTextRenderer

use of org.signal.imageeditor.core.renderers.MultiLineTextRenderer in project Signal-Android by signalapp.

the class ImageEditorFragment method addText.

protected void addText() {
    String initialText = "";
    int color = imageEditorHud.getActiveColor();
    MultiLineTextRenderer renderer = new MultiLineTextRenderer(initialText, color, MultiLineTextRenderer.Mode.REGULAR);
    EditorElement element = new EditorElement(renderer, EditorModel.Z_TEXT);
    imageEditorView.getModel().addElementCentered(element, 1);
    imageEditorView.invalidate();
    setCurrentSelection(element);
    startTextEntityEditing(element, true);
}
Also used : MultiLineTextRenderer(org.signal.imageeditor.core.renderers.MultiLineTextRenderer) EditorElement(org.signal.imageeditor.core.model.EditorElement) Paint(android.graphics.Paint) Point(android.graphics.Point)

Example 5 with MultiLineTextRenderer

use of org.signal.imageeditor.core.renderers.MultiLineTextRenderer in project Signal-Android by signalapp.

the class MainActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_activity);
    Toolbar toolbar = findViewById(R.id.toolbar);
    toolbar.setTitle(R.string.app_name_short);
    setSupportActionBar(toolbar);
    imageEditorView = findViewById(R.id.image_editor);
    imageEditorView.setUndoRedoStackListener((undoAvailable, redoAvailable) -> {
        Log.d("ALAN", String.format("Undo/Redo available: %s, %s", undoAvailable ? "Y" : "N", redoAvailable ? "Y" : "N"));
        if (menu == null)
            return;
        MenuItem undo = menu.findItem(R.id.action_undo);
        MenuItem redo = menu.findItem(R.id.action_redo);
        if (undo != null)
            undo.setVisible(undoAvailable);
        if (redo != null)
            redo.setVisible(redoAvailable);
    });
    EditorModel model = null;
    if (savedInstanceState != null) {
        model = savedInstanceState.getParcelable("MODEL");
        Log.d("ALAN", "Restoring instance " + (model != null ? model.hashCode() : 0));
    }
    if (model == null) {
        model = initialModel();
        Log.d("ALAN", "New instance created " + model.hashCode());
    }
    imageEditorView.setModel(model);
    imageEditorView.setTapListener(new ImageEditorView.TapListener() {

        @Override
        public void onEntityDown(@Nullable EditorElement editorElement) {
            Log.d("ALAN", "Entity down " + editorElement);
        }

        @Override
        public void onEntitySingleTap(@Nullable EditorElement editorElement) {
            Log.d("ALAN", "Entity single tapped " + editorElement);
        }

        @Override
        public void onEntityDoubleTap(@NonNull EditorElement editorElement) {
            Log.d("ALAN", "Entity double tapped " + editorElement);
            if (editorElement.getRenderer() instanceof MultiLineTextRenderer) {
                imageEditorView.startTextEditing(editorElement);
            } else {
                imageEditorView.deleteElement(editorElement);
            }
        }
    });
}
Also used : EditorModel(org.signal.imageeditor.core.model.EditorModel) MultiLineTextRenderer(org.signal.imageeditor.core.renderers.MultiLineTextRenderer) EditorElement(org.signal.imageeditor.core.model.EditorElement) MenuItem(android.view.MenuItem) ImageEditorView(org.signal.imageeditor.core.ImageEditorView) Toolbar(androidx.appcompat.widget.Toolbar)

Aggregations

EditorElement (org.signal.imageeditor.core.model.EditorElement)6 MultiLineTextRenderer (org.signal.imageeditor.core.renderers.MultiLineTextRenderer)6 EditorModel (org.signal.imageeditor.core.model.EditorModel)4 Paint (android.graphics.Paint)2 Point (android.graphics.Point)2 MenuItem (android.view.MenuItem)2 Toolbar (androidx.appcompat.widget.Toolbar)2 UriRenderer (org.signal.imageeditor.app.renderers.UriRenderer)2 UrlRenderer (org.signal.imageeditor.app.renderers.UrlRenderer)2 ImageEditorView (org.signal.imageeditor.core.ImageEditorView)2