Téléchargez cette application !
https://play.google.com/store/apps/details?id=com.peenats.ayana.colorlens
Ceci est une application de retouche photo pour Android. Il peut faire une photo comme la photo CHEKI. Vous pouvez décorer votre photo avec le filtre, le cadre photo et le griffonnage de Colorlens au doigt.
J'utilise Java pour cette application. Je suis nouveau dans le langage Java. Alors comme défi, j'ai décidé de faire un projet Java. Cependant, lors de l'événement I/O 2019, Google a annoncé que le développement d'Android serait de plus en plus basé sur Kotlin. J'ai donc décidé de créer une application Android en utilisant Kotlin la prochaine fois. Google I/O a également annoncé le nouveau Android Jetpack. Je n'ai utilisé aucune fonction dans ce projet de Jetpack. Mais je dois rattraper mon retard sur toutes les fonctionnalités de Jetpack.
✂︎Recadrage
Il est implémenté par la bibliothèque SimpleCropView. Je viens de définir cropMode, frameScale et ShowMode. C'était super facile à utiliser et beau ! C'est le code.
mCropView = findViewById(R.id.cropImageView);
mCropView.setCropMode(CropImageView.CropMode.SQUARE);
mCropView.setInitialFrameScale(0.75f);
mCropView.setGuideShowMode(CropImageView.ShowMode.SHOW_ON_TOUCH);
?Filtre à lentilles colorées
C'est la fonction principale de cette application. Pour réaliser le filtre couleur, j'ai utilisé une matrice rgba. Par exemple, c'est le code pour changer la couleur en rouge.
float[] red_colour_matrix = {
3f, 0, 0, 0, 0,
0, 1, 0, 0, 0,
0, 0, 1, 0, 0,
0, 0, 0, 1, 0
};
?Cadre
J'étais particulièrement préoccupé par ces cadres. Je voulais rapprocher ces cadres des vrais cadres CHEKI. J'ai réalisé ces cadres à l'aide de Sketch. Ensuite, je les ai exportés pour la densité souhaitée (1x, 1,5x, 2x, 3x, 4x). Ensuite, je les ai définis dans chaque dossier de densité. Le répertoire dessinable ressemble à l'image ci-dessous.
?Griffonnage
Je voulais créer une application de retouche photo pouvant être griffonnée au doigt. Ce n'était pas difficile à mettre en œuvre mais un peu compliqué. Pour tracer une ligne sur l'appareil avec le doigt, j'ai dû remplacer la méthode onTouchEvent (elle peut détecter 3 actions du doigt : descendre, déplacer et monter). J'ai ajouté le chemin et peint dans ArrayList à chaque fois que je me noyais. Ensuite, j'ai remplacé la méthode onDraw pour tracer des chemins dans ArrayList sur Canvas. J'ai appelé la méthode onDraw chaque fois que je dessinais chaque ligne.
@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;
}
Glisser
Récupérant des images rapidement et efficacement, cette application utilise Glide.
SimpleCropView
En recadrant une image de la galerie, j'utilise cette bibliothèque. La raison pour laquelle j'ai décidé de l'utiliser est que cette bibliothèque a une vue simple et agréable. Il est également facile à utiliser.