下载这个应用程序!
https://play.google.com/store/apps/details?id=com.peenats.ayana.colorlens
这是一款适用于 Android 的照片编辑器应用程序。它可以制作像 CHEKI 照片一样的照片。您可以用 colorlens 的滤镜、相框和手指涂鸦来装饰您的照片。
我在这个应用程序中使用 Java。我是 Java 语言新手。因此,作为一个挑战,我决定做一个 Java 项目。然而,在 I/O 2019 活动上,Google 宣布 Android 开发将越来越基于 Kotlin。所以我决定下次使用 Kotlin 制作 Android 应用程序。 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 快速高效地获取图像。
简单裁剪视图
从图库中裁剪图像,我正在使用这个库。我决定使用这个的原因是这个库有一个简单而漂亮的视图。而且它很容易使用。