mirror of
https://github.com/wasabeef/glide-transformations.git
synced 2025-10-04 09:53:21 +08:00
@@ -1,8 +1,9 @@
|
||||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
apply plugin: 'kotlin-kapt'
|
||||
|
||||
android {
|
||||
compileSdkVersion COMPILE_SDK_VERSION as int
|
||||
buildToolsVersion BUILD_TOOLS_VERSION
|
||||
|
||||
defaultConfig {
|
||||
minSdkVersion MIN_SDK_VERSION as int
|
||||
@@ -57,10 +58,11 @@ def getKeyAliasPasswordProperty() {
|
||||
|
||||
dependencies {
|
||||
implementation project(':transformations')
|
||||
implementation "com.github.bumptech.glide:glide:${GLIDE_VERSION}"
|
||||
annotationProcessor "com.github.bumptech.glide:compiler:${GLIDE_VERSION}"
|
||||
implementation "jp.co.cyberagent.android.gpuimage:gpuimage-library:${GPUIMAGE_VERSION}"
|
||||
implementation "com.android.support:appcompat-v7:${SUPPORT_PACKAGE_VERSION}"
|
||||
implementation "com.android.support:recyclerview-v7:${SUPPORT_PACKAGE_VERSION}"
|
||||
implementation 'com.android.support.constraint:constraint-layout:1.1.0'
|
||||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
|
||||
implementation "com.github.bumptech.glide:glide:$glide_version"
|
||||
kapt "com.github.bumptech.glide:compiler:$glide_version"
|
||||
implementation "jp.co.cyberagent.android:gpuimage:$gpuimage_version"
|
||||
implementation "androidx.appcompat:appcompat:1.0.2"
|
||||
implementation "androidx.recyclerview:recyclerview:1.0.0"
|
||||
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
|
||||
}
|
||||
|
@@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="jp.wasabeef.example.glide"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="jp.wasabeef.example.glide"
|
||||
>
|
||||
|
||||
<application
|
||||
@@ -8,7 +9,7 @@
|
||||
android:icon="@drawable/ic_launcher"
|
||||
android:label="@string/app_name"
|
||||
android:theme="@style/AppTheme"
|
||||
>
|
||||
tools:ignore="GoogleAppIndexingWarning">
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:label="@string/app_name"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package jp.wasabeef.example.glide;
|
||||
package jp.wasabeef.example.glide
|
||||
|
||||
/**
|
||||
* Copyright (C) 2018 Wasabeef
|
||||
@@ -16,12 +16,8 @@ package jp.wasabeef.example.glide;
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources
|
||||
|
||||
public class Utils {
|
||||
val Float.px: Float get() = (this * Resources.getSystem().displayMetrics.density)
|
||||
|
||||
public static int dip2px(Context context, float dp) {
|
||||
float scale = context.getResources().getDisplayMetrics().density;
|
||||
return (int) (dp * scale + 0.5f);
|
||||
}
|
||||
}
|
||||
val Int.px: Int get() = ((this * Resources.getSystem().displayMetrics.density).toInt())
|
@@ -1,46 +0,0 @@
|
||||
package jp.wasabeef.example.glide;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import jp.wasabeef.example.glide.MainAdapter.Type;
|
||||
|
||||
public class MainActivity extends AppCompatActivity {
|
||||
|
||||
@Override protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_main);
|
||||
|
||||
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.list);
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(this));
|
||||
|
||||
List<Type> dataSet = new ArrayList<>();
|
||||
dataSet.add(Type.Mask);
|
||||
dataSet.add(Type.NinePatchMask);
|
||||
dataSet.add(Type.CropTop);
|
||||
dataSet.add(Type.CropCenter);
|
||||
dataSet.add(Type.CropBottom);
|
||||
dataSet.add(Type.CropSquare);
|
||||
dataSet.add(Type.CropCircle);
|
||||
dataSet.add(Type.ColorFilter);
|
||||
dataSet.add(Type.Grayscale);
|
||||
dataSet.add(Type.RoundedCorners);
|
||||
dataSet.add(Type.Blur);
|
||||
dataSet.add(Type.SupportRSBlur);
|
||||
dataSet.add(Type.Toon);
|
||||
dataSet.add(Type.Sepia);
|
||||
dataSet.add(Type.Contrast);
|
||||
dataSet.add(Type.Invert);
|
||||
dataSet.add(Type.Pixel);
|
||||
dataSet.add(Type.Sketch);
|
||||
dataSet.add(Type.Swirl);
|
||||
dataSet.add(Type.Brightness);
|
||||
dataSet.add(Type.Kuawahara);
|
||||
dataSet.add(Type.Vignette);
|
||||
|
||||
recyclerView.setAdapter(new MainAdapter(this, dataSet));
|
||||
}
|
||||
}
|
@@ -0,0 +1,24 @@
|
||||
package jp.wasabeef.example.glide
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import jp.wasabeef.example.glide.MainAdapter.Type.*
|
||||
|
||||
class MainActivity : AppCompatActivity() {
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_main)
|
||||
|
||||
findViewById<RecyclerView>(R.id.list).apply {
|
||||
layoutManager = LinearLayoutManager(context)
|
||||
adapter = MainAdapter(context, mutableListOf(
|
||||
Mask, NinePatchMask, CropTop, CropCenter, CropBottom, CropSquare, CropCircle, Grayscale,
|
||||
Blur, SupportRSBlur, Toon, Sepia, Contrast, Invert, Pixel, Sketch, Swirl, Brightness,
|
||||
Kuawahara, Vignette
|
||||
))
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,258 +0,0 @@
|
||||
package jp.wasabeef.example.glide;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.PointF;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.bumptech.glide.load.MultiTransformation;
|
||||
import com.bumptech.glide.load.resource.bitmap.CenterCrop;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import jp.wasabeef.glide.transformations.BlurTransformation;
|
||||
import jp.wasabeef.glide.transformations.ColorFilterTransformation;
|
||||
import jp.wasabeef.glide.transformations.CropCircleTransformation;
|
||||
import jp.wasabeef.glide.transformations.CropSquareTransformation;
|
||||
import jp.wasabeef.glide.transformations.CropTransformation;
|
||||
import jp.wasabeef.glide.transformations.CropTransformation.CropType;
|
||||
import jp.wasabeef.glide.transformations.GrayscaleTransformation;
|
||||
import jp.wasabeef.glide.transformations.MaskTransformation;
|
||||
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
|
||||
import jp.wasabeef.glide.transformations.SupportRSBlurTransformation;
|
||||
import jp.wasabeef.glide.transformations.gpu.BrightnessFilterTransformation;
|
||||
import jp.wasabeef.glide.transformations.gpu.ContrastFilterTransformation;
|
||||
import jp.wasabeef.glide.transformations.gpu.InvertFilterTransformation;
|
||||
import jp.wasabeef.glide.transformations.gpu.KuwaharaFilterTransformation;
|
||||
import jp.wasabeef.glide.transformations.gpu.PixelationFilterTransformation;
|
||||
import jp.wasabeef.glide.transformations.gpu.SepiaFilterTransformation;
|
||||
import jp.wasabeef.glide.transformations.gpu.SketchFilterTransformation;
|
||||
import jp.wasabeef.glide.transformations.gpu.SwirlFilterTransformation;
|
||||
import jp.wasabeef.glide.transformations.gpu.ToonFilterTransformation;
|
||||
import jp.wasabeef.glide.transformations.gpu.VignetteFilterTransformation;
|
||||
|
||||
import static com.bumptech.glide.request.RequestOptions.bitmapTransform;
|
||||
import static com.bumptech.glide.request.RequestOptions.overrideOf;
|
||||
|
||||
/**
|
||||
* Created by Wasabeef on 2015/01/11.
|
||||
*/
|
||||
public class MainAdapter extends RecyclerView.Adapter<MainAdapter.ViewHolder> {
|
||||
|
||||
private Context context;
|
||||
private List<Type> dataSet;
|
||||
|
||||
enum Type {
|
||||
Mask,
|
||||
NinePatchMask,
|
||||
CropTop,
|
||||
CropCenter,
|
||||
CropBottom,
|
||||
CropSquare,
|
||||
CropCircle,
|
||||
ColorFilter,
|
||||
Grayscale,
|
||||
RoundedCorners,
|
||||
Blur,
|
||||
SupportRSBlur,
|
||||
Toon,
|
||||
Sepia,
|
||||
Contrast,
|
||||
Invert,
|
||||
Pixel,
|
||||
Sketch,
|
||||
Swirl,
|
||||
Brightness,
|
||||
Kuawahara,
|
||||
Vignette
|
||||
}
|
||||
|
||||
public MainAdapter(Context context, List<Type> dataSet) {
|
||||
this.context = context;
|
||||
this.dataSet = dataSet;
|
||||
}
|
||||
|
||||
@Override public MainAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
View v = LayoutInflater.from(context).inflate(R.layout.layout_list_item, parent, false);
|
||||
return new ViewHolder(v);
|
||||
}
|
||||
|
||||
@Override public void onBindViewHolder(MainAdapter.ViewHolder holder, int position) {
|
||||
switch (dataSet.get(position)) {
|
||||
case Mask: {
|
||||
int width = Utils.dip2px(context, 266.66f);
|
||||
int height = Utils.dip2px(context, 252.66f);
|
||||
Glide.with(context)
|
||||
.load(R.drawable.check)
|
||||
.apply(overrideOf(width, height))
|
||||
.apply(bitmapTransform(new MultiTransformation<>(new CenterCrop(),
|
||||
new MaskTransformation(R.drawable.mask_starfish))))
|
||||
.into(holder.image);
|
||||
break;
|
||||
}
|
||||
case NinePatchMask: {
|
||||
int width = Utils.dip2px(context, 300.0f);
|
||||
int height = Utils.dip2px(context, 200.0f);
|
||||
Glide.with(context)
|
||||
.load(R.drawable.check)
|
||||
.apply(overrideOf(width, height))
|
||||
.apply(bitmapTransform(new MultiTransformation<>(new CenterCrop(),
|
||||
new MaskTransformation(R.drawable.mask_chat_right))))
|
||||
.into(holder.image);
|
||||
break;
|
||||
}
|
||||
case CropTop:
|
||||
Glide.with(context)
|
||||
.load(R.drawable.demo)
|
||||
.apply(bitmapTransform(
|
||||
new CropTransformation(Utils.dip2px(context, 300), Utils.dip2px(context, 100),
|
||||
CropType.TOP)))
|
||||
.into(holder.image);
|
||||
break;
|
||||
case CropCenter:
|
||||
Glide.with(context)
|
||||
.load(R.drawable.demo)
|
||||
.apply(bitmapTransform(
|
||||
new CropTransformation(Utils.dip2px(context, 300), Utils.dip2px(context, 100), CropType.CENTER)))
|
||||
.into(holder.image);
|
||||
break;
|
||||
case CropBottom:
|
||||
Glide.with(context)
|
||||
.load(R.drawable.demo)
|
||||
.apply(bitmapTransform(
|
||||
new CropTransformation(Utils.dip2px(context, 300), Utils.dip2px(context, 100),
|
||||
CropType.BOTTOM)))
|
||||
.into(holder.image);
|
||||
|
||||
break;
|
||||
case CropSquare:
|
||||
Glide.with(context)
|
||||
.load(R.drawable.demo)
|
||||
.apply(bitmapTransform(new CropSquareTransformation()))
|
||||
.into(holder.image);
|
||||
break;
|
||||
case CropCircle:
|
||||
Glide.with(context)
|
||||
.load(R.drawable.demo)
|
||||
.apply(bitmapTransform(new CropCircleTransformation()))
|
||||
.into(holder.image);
|
||||
break;
|
||||
case ColorFilter:
|
||||
Glide.with(context)
|
||||
.load(R.drawable.demo)
|
||||
.apply(bitmapTransform(new ColorFilterTransformation(Color.argb(80, 255, 0, 0))))
|
||||
.into(holder.image);
|
||||
break;
|
||||
case Grayscale:
|
||||
Glide.with(context)
|
||||
.load(R.drawable.demo)
|
||||
.apply(bitmapTransform(new GrayscaleTransformation()))
|
||||
.into(holder.image);
|
||||
break;
|
||||
case RoundedCorners:
|
||||
Glide.with(context)
|
||||
.load(R.drawable.demo)
|
||||
.apply(bitmapTransform(new RoundedCornersTransformation(45, 0,
|
||||
RoundedCornersTransformation.CornerType.BOTTOM)))
|
||||
.into(holder.image);
|
||||
break;
|
||||
case Blur:
|
||||
Glide.with(context)
|
||||
.load(R.drawable.check)
|
||||
.apply(bitmapTransform(new BlurTransformation(25)))
|
||||
.into(holder.image);
|
||||
break;
|
||||
case SupportRSBlur:
|
||||
Glide.with(context)
|
||||
.load(R.drawable.check)
|
||||
.apply(bitmapTransform(new SupportRSBlurTransformation(25, 10)))
|
||||
.into(holder.image);
|
||||
break;
|
||||
case Toon:
|
||||
Glide.with(context)
|
||||
.load(R.drawable.demo)
|
||||
.apply(bitmapTransform(new ToonFilterTransformation()))
|
||||
.into(holder.image);
|
||||
break;
|
||||
case Sepia:
|
||||
Glide.with(context)
|
||||
.load(R.drawable.check)
|
||||
.apply(bitmapTransform(new SepiaFilterTransformation()))
|
||||
.into(holder.image);
|
||||
break;
|
||||
case Contrast:
|
||||
Glide.with(context)
|
||||
.load(R.drawable.check)
|
||||
.apply(bitmapTransform(new ContrastFilterTransformation(2.0f)))
|
||||
.into(holder.image);
|
||||
break;
|
||||
case Invert:
|
||||
Glide.with(context)
|
||||
.load(R.drawable.check)
|
||||
.apply(bitmapTransform(new InvertFilterTransformation()))
|
||||
.into(holder.image);
|
||||
break;
|
||||
case Pixel:
|
||||
Glide.with(context)
|
||||
.load(R.drawable.check)
|
||||
.apply(bitmapTransform(new PixelationFilterTransformation(20)))
|
||||
.into(holder.image);
|
||||
break;
|
||||
case Sketch:
|
||||
Glide.with(context)
|
||||
.load(R.drawable.check)
|
||||
.apply(bitmapTransform(new SketchFilterTransformation()))
|
||||
.into(holder.image);
|
||||
break;
|
||||
case Swirl:
|
||||
Glide.with(context)
|
||||
.load(R.drawable.check)
|
||||
.apply(bitmapTransform(
|
||||
new SwirlFilterTransformation(0.5f, 1.0f, new PointF(0.5f, 0.5f))).dontAnimate())
|
||||
.into(holder.image);
|
||||
break;
|
||||
case Brightness:
|
||||
Glide.with(context)
|
||||
.load(R.drawable.check)
|
||||
.apply(bitmapTransform(new BrightnessFilterTransformation(0.5f)).dontAnimate())
|
||||
.into(holder.image);
|
||||
break;
|
||||
case Kuawahara:
|
||||
Glide.with(context)
|
||||
.load(R.drawable.check)
|
||||
.apply(bitmapTransform(new KuwaharaFilterTransformation(25)).dontAnimate())
|
||||
.into(holder.image);
|
||||
break;
|
||||
case Vignette:
|
||||
Glide.with(context)
|
||||
.load(R.drawable.check)
|
||||
.apply(bitmapTransform(new VignetteFilterTransformation(new PointF(0.5f, 0.5f),
|
||||
new float[] { 0.0f, 0.0f, 0.0f }, 0f, 0.75f)).dontAnimate())
|
||||
.into(holder.image);
|
||||
break;
|
||||
}
|
||||
holder.title.setText(dataSet.get(position).name());
|
||||
}
|
||||
|
||||
@Override public int getItemCount() {
|
||||
return dataSet.size();
|
||||
}
|
||||
|
||||
static class ViewHolder extends RecyclerView.ViewHolder {
|
||||
|
||||
public ImageView image;
|
||||
public TextView title;
|
||||
|
||||
ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
image = (ImageView) itemView.findViewById(R.id.image);
|
||||
title = (TextView) itemView.findViewById(R.id.title);
|
||||
}
|
||||
}
|
||||
}
|
195
example/src/main/java/jp/wasabeef/example/glide/MainAdapter.kt
Normal file
195
example/src/main/java/jp/wasabeef/example/glide/MainAdapter.kt
Normal file
@@ -0,0 +1,195 @@
|
||||
package jp.wasabeef.example.glide
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.Bitmap
|
||||
import android.graphics.Color
|
||||
import android.graphics.PointF
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.ImageView
|
||||
import android.widget.TextView
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.bumptech.glide.Glide
|
||||
import com.bumptech.glide.load.MultiTransformation
|
||||
import com.bumptech.glide.load.resource.bitmap.CenterCrop
|
||||
import com.bumptech.glide.request.RequestOptions.bitmapTransform
|
||||
import com.bumptech.glide.request.RequestOptions.overrideOf
|
||||
import jp.wasabeef.example.glide.MainAdapter.Type.*
|
||||
import jp.wasabeef.glide.transformations.*
|
||||
import jp.wasabeef.glide.transformations.CropTransformation.CropType
|
||||
import jp.wasabeef.glide.transformations.gpu.*
|
||||
|
||||
/**
|
||||
* Created by Wasabeef on 2015/01/11.
|
||||
*/
|
||||
class MainAdapter(
|
||||
private val context: Context,
|
||||
private val dataSet: MutableList<Type>
|
||||
) : RecyclerView.Adapter<MainAdapter.ViewHolder>() {
|
||||
|
||||
enum class Type {
|
||||
Mask,
|
||||
NinePatchMask,
|
||||
CropTop,
|
||||
CropCenter,
|
||||
CropBottom,
|
||||
CropSquare,
|
||||
CropCircle,
|
||||
ColorFilter,
|
||||
Grayscale,
|
||||
RoundedCorners,
|
||||
Blur,
|
||||
SupportRSBlur,
|
||||
Toon,
|
||||
Sepia,
|
||||
Contrast,
|
||||
Invert,
|
||||
Pixel,
|
||||
Sketch,
|
||||
Swirl,
|
||||
Brightness,
|
||||
Kuawahara,
|
||||
Vignette
|
||||
}
|
||||
|
||||
override fun getItemCount(): Int {
|
||||
return dataSet.size
|
||||
}
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
|
||||
val v = LayoutInflater.from(context).inflate(R.layout.layout_list_item, parent, false)
|
||||
return ViewHolder(v)
|
||||
}
|
||||
|
||||
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
||||
|
||||
when (dataSet[position]) {
|
||||
MainAdapter.Type.Mask -> {
|
||||
Glide.with(context)
|
||||
.load(R.drawable.check)
|
||||
.apply(overrideOf(266.px, 252.px))
|
||||
.apply(bitmapTransform(MultiTransformation<Bitmap>(CenterCrop(),
|
||||
MaskTransformation(R.drawable.mask_starfish))))
|
||||
.into(holder.image)
|
||||
}
|
||||
MainAdapter.Type.NinePatchMask -> {
|
||||
Glide.with(context)
|
||||
.load(R.drawable.check)
|
||||
.apply(overrideOf(300.px, 200.px))
|
||||
.apply(bitmapTransform(MultiTransformation<Bitmap>(CenterCrop(),
|
||||
MaskTransformation(R.drawable.mask_chat_right))))
|
||||
.into(holder.image)
|
||||
}
|
||||
|
||||
CropTop -> Glide.with(context)
|
||||
.load(R.drawable.demo)
|
||||
.apply(bitmapTransform(CropTransformation(300.px, 100.px, CropType.TOP)))
|
||||
.into(holder.image)
|
||||
|
||||
CropCenter -> Glide.with(context)
|
||||
.load(R.drawable.demo)
|
||||
.apply(bitmapTransform(CropTransformation(300.px, 100.px, CropType.CENTER)))
|
||||
.into(holder.image)
|
||||
|
||||
CropBottom -> Glide.with(context)
|
||||
.load(R.drawable.demo)
|
||||
.apply(bitmapTransform(CropTransformation(300.px, 100.px, CropType.BOTTOM)))
|
||||
.into(holder.image)
|
||||
|
||||
CropSquare -> Glide.with(context)
|
||||
.load(R.drawable.demo)
|
||||
.apply(bitmapTransform(CropSquareTransformation()))
|
||||
.into(holder.image)
|
||||
|
||||
CropCircle -> Glide.with(context)
|
||||
.load(R.drawable.demo)
|
||||
.apply(bitmapTransform(CropCircleTransformation()))
|
||||
.into(holder.image)
|
||||
|
||||
ColorFilter -> Glide.with(context)
|
||||
.load(R.drawable.demo)
|
||||
.apply(bitmapTransform(ColorFilterTransformation(Color.argb(80, 255, 0, 0))))
|
||||
.into(holder.image)
|
||||
|
||||
Grayscale -> Glide.with(context)
|
||||
.load(R.drawable.demo)
|
||||
.apply(bitmapTransform(GrayscaleTransformation()))
|
||||
.into(holder.image)
|
||||
|
||||
RoundedCorners -> Glide.with(context)
|
||||
.load(R.drawable.demo)
|
||||
.apply(bitmapTransform(RoundedCornersTransformation(45, 0,
|
||||
RoundedCornersTransformation.CornerType.BOTTOM)))
|
||||
.into(holder.image)
|
||||
|
||||
Blur -> Glide.with(context)
|
||||
.load(R.drawable.check)
|
||||
.apply(bitmapTransform(BlurTransformation(25)))
|
||||
.into(holder.image)
|
||||
|
||||
SupportRSBlur -> Glide.with(context)
|
||||
.load(R.drawable.check)
|
||||
.apply(bitmapTransform(SupportRSBlurTransformation(25, 10)))
|
||||
.into(holder.image)
|
||||
|
||||
Toon -> Glide.with(context)
|
||||
.load(R.drawable.demo)
|
||||
.apply(bitmapTransform(ToonFilterTransformation()))
|
||||
.into(holder.image)
|
||||
|
||||
Sepia -> Glide.with(context)
|
||||
.load(R.drawable.check)
|
||||
.apply(bitmapTransform(SepiaFilterTransformation()))
|
||||
.into(holder.image)
|
||||
|
||||
Contrast -> Glide.with(context)
|
||||
.load(R.drawable.check)
|
||||
.apply(bitmapTransform(ContrastFilterTransformation(2.0f)))
|
||||
.into(holder.image)
|
||||
|
||||
Invert -> Glide.with(context)
|
||||
.load(R.drawable.check)
|
||||
.apply(bitmapTransform(InvertFilterTransformation()))
|
||||
.into(holder.image)
|
||||
|
||||
Pixel -> Glide.with(context)
|
||||
.load(R.drawable.check)
|
||||
.apply(bitmapTransform(PixelationFilterTransformation(20f)))
|
||||
.into(holder.image)
|
||||
|
||||
Sketch -> Glide.with(context)
|
||||
.load(R.drawable.check)
|
||||
.apply(bitmapTransform(SketchFilterTransformation()))
|
||||
.into(holder.image)
|
||||
|
||||
Swirl -> Glide.with(context)
|
||||
.load(R.drawable.check)
|
||||
.apply(bitmapTransform(
|
||||
SwirlFilterTransformation(0.5f, 1.0f, PointF(0.5f, 0.5f))).dontAnimate())
|
||||
.into(holder.image)
|
||||
|
||||
Brightness -> Glide.with(context)
|
||||
.load(R.drawable.check)
|
||||
.apply(bitmapTransform(BrightnessFilterTransformation(0.5f)).dontAnimate())
|
||||
.into(holder.image)
|
||||
|
||||
Kuawahara -> Glide.with(context)
|
||||
.load(R.drawable.check)
|
||||
.apply(bitmapTransform(KuwaharaFilterTransformation(25)).dontAnimate())
|
||||
.into(holder.image)
|
||||
|
||||
Vignette -> Glide.with(context)
|
||||
.load(R.drawable.check)
|
||||
.apply(bitmapTransform(VignetteFilterTransformation(PointF(0.5f, 0.5f),
|
||||
floatArrayOf(0.0f, 0.0f, 0.0f), 0f, 0.75f)).dontAnimate())
|
||||
.into(holder.image)
|
||||
}
|
||||
holder.title.text = dataSet[position].name
|
||||
}
|
||||
|
||||
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
|
||||
var image: ImageView = itemView.findViewById(R.id.image)
|
||||
var title: TextView = itemView.findViewById(R.id.title)
|
||||
}
|
||||
}
|
@@ -1,22 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<android.support.constraint.ConstraintLayout
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
>
|
||||
|
||||
<android.support.v7.widget.RecyclerView
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/list"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginTop="8dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
/>
|
||||
</android.support.constraint.ConstraintLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<android.support.constraint.ConstraintLayout
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
@@ -32,4 +32,4 @@
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
/>
|
||||
</android.support.constraint.ConstraintLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
Reference in New Issue
Block a user