이 앱을 다운로드하세요!
https://play.google.com/store/apps/details?id=com.peenats.ayana.colorlens
이것은 안드로이드용 사진 편집기 앱입니다. CHEKI 사진과 같은 사진을 만들 수 있습니다. 컬러렌즈 필터, 액자, 손가락 낙서로 사진을 꾸밀 수 있습니다.
이 앱에는 Java를 사용하고 있습니다. 저는 Java 언어를 처음 사용합니다. 그래서 나는 도전으로 Java 프로젝트를 하기로 결정했습니다. 그러나 I/O 2019 이벤트에서 Google은 Android 개발이 점차 Kotlin 기반이 될 것이라고 발표했습니다. 그래서 다음에는 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
};
?액자
저는 특히 이 프레임에 대해 걱정했습니다. 저는 이 프레임들을 실제 CHEKI 프레임에 가깝게 만들고 싶었습니다. Sketch를 사용하여 이러한 프레임을 만들었습니다. 그런 다음 원하는 밀도(1x, 1.5x, 2x, 3x, 4x)로 내보냈습니다. 그런 다음 각 밀도 폴더에 설정했습니다. Drawable 디렉터리는 아래 이미지와 같습니다.
?낙서
손가락으로 낙서할 수 있는 사진 편집기 앱을 만들고 싶었습니다. 구현하기는 어렵지 않았지만 조금 복잡했습니다. 손가락으로 장치에 선을 그리려면 onTouchEvent 메서드를 재정의해야 했습니다(손가락의 3가지 동작(아래로, 이동, 위로)을 감지할 수 있음). 나는 익사할 때마다 ArrayList에 경로와 페인트를 추가했습니다. 그런 다음 onDraw 메서드를 재정의하여 Canvas의 ArrayList 내부에 경로를 그렸습니다. 각 선을 그릴 때마다 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를 사용하고 있습니다.
SimpleCropView
갤러리에서 이미지를 자르면서 이 라이브러리를 사용하고 있습니다. 제가 이 라이브러리를 사용하기로 결정한 이유는 이 라이브러리가 단순하고 뷰가 멋지기 때문입니다. 또한 사용하기 쉽습니다.