Загрузите это приложение!
https://play.google.com/store/apps/details?id=com.peenats.ayana.colorlens
Это приложение для редактирования фотографий для Android. Он может сделать фотографию, как фотография CHEKI. Вы можете украсить свою фотографию с помощью цветного фильтра, фоторамки и рисунка пальцем.
Я использую Java для этого приложения. Я новичок в языке Java. В качестве вызова я решил заняться Java-проектом. Однако на мероприятии I/O 2019 Google объявил, что разработка Android будет все больше основываться на Kotlin. Поэтому в следующий раз я решил сделать приложение для Android с использованием Kotlin. Также Google I/O анонсировала новый Android Jetpack. Я не использовал в этом проекте ни одну функцию из Jetpack. Но мне нужно освоить все возможности Jetpack.
✂︎Обрезка
Это реализовано библиотекой SimpleCropView. Я просто установил CropMode, FrameScale и ShowMode. Это было очень просто в использовании и красиво! Это код.
mCropView = findViewById(R.id.cropImageView);
mCropView.setCropMode(CropImageView.CropMode.SQUARE);
mCropView.setInitialFrameScale(0.75f);
mCropView.setGuideShowMode(CropImageView.ShowMode.SHOW_ON_TOUCH);
?Цветной фильтр
Это основная функция в этом приложении. Для создания цветового фильтра я использовал матрицу RGBA. Например, это код для изменения цвета на красный.
float[] red_colour_matrix = {
3f, 0, 0, 0, 0,
0, 1, 0, 0, 0,
0, 0, 1, 0, 0,
0, 0, 0, 1, 0
};
?Рамка
Меня особенно беспокоили эти кадры. Мне хотелось приблизить эти кадры к реальному кадру ЧЕКИ. Эти кадры я сделал с помощью Sketch. Затем я экспортировал их для желаемой плотности (1x, 1,5x, 2x, 3x, 4x). Затем я установил их в каждую папку плотности. Каталог Drawable выглядит, как показано ниже.
?Дудл
Я хотел сделать приложение для редактирования фотографий, в котором можно было бы рисовать пальцем. Это было несложно реализовать, но немного сложно. Чтобы нарисовать линию на устройстве пальцем, мне пришлось переопределить метод onTouchEvent (он может обнаружить 3 действия пальца: вниз, перемещение и вверх). Я добавлял путь и рисовал в ArrayList каждый раз, когда тонул. Затем я переопределил метод onDraw, чтобы рисовать пути внутри ArrayList на Canvas. Я вызывал метод onDraw всякий раз, когда рисовал каждую линию.
@Override
public boolean onTouchEvent( MotionEvent event) {
float x = event.getX();
float y = event.getY();
if (event.getAction() == MotionEvent.ACTION_DOWN) {
startPath(x, y);
} else if (event.getAction() == MotionEvent.ACTION_MOVE) {
updatePath(x, y);
} else if (event.getAction() == MotionEvent.ACTION_UP) {
}
invalidate();
return true;
}
Скольжение
Это приложение использует Glide для быстрого и эффективного получения изображений.
Симплекропвиев
Обрезая изображение из галереи, я использую эту библиотеку. Причина, по которой я решил использовать это, заключается в том, что эта библиотека имеет простой и приятный вид. Также он прост в использовании.