Android: добавление перетаскиваемого растрового изображения на холст - PullRequest
0 голосов
/ 14 марта 2019

Я пытаюсь создать приложение для редактирования фотографий, в которое можно добавлять изображения и перетаскивать их.У меня есть базовые знания о потоке, просто я не знаю, как его реализовать или если он прав.

public class QuotesCanvas extends FrameLayout {

private ArrayList<Integer> drawables;

public QuotesCanvas(Context context,  AttributeSet attrs) {
    super(context, attrs);
    drawables = new ArrayList<>();
}

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    for(int drawable : drawables) {
        Bitmap bitmap = BitmapFactory.decodeResource(getContext().getResources(), drawable);
        canvas.drawBitmap(bitmap, drawable.x, drawable.y, null); //HELP WITH THIS!
    }
}

public void addBitmap(int drawable) {
    drawables.add(drawable);
    invalidate();
}

@Override
public boolean onDragEvent(DragEvent event) {
    return super.onDragEvent(event);
    if (event == DragEvent.ACTION_DRAG_ENTERED) {
        //STORE DRAWABLE X,Y VALUES
    } else if (event == DragEvent.ACTION_DRAG_STARTED) {
        //MOVE DRAWABLE ALONG X,Y VALUES THEN SAVE THEIR VALUES TO DRAWABLES ARRAY LIST
        invalidate();
    }

Очевидно, что код здесь не верен.Моя идея в том, что я буду следить за всеми объектами рисования, которые были добавлены в ArrayList, а затем каждый раз, когда я перетаскиваю объект рисования, я также буду хранить значения x, y этого объекта рисования?Пожалуйста, помогите направить меня в правильном направлении.

Я просто хочу, чтобы пользователь нажимал на элемент, который нужно добавить, и он добавлялся в центр экрана, а также он мог перетаскивать его и добавлять другие элементы.

...