summaryrefslogtreecommitdiffstats
path: root/src/android/app/src/main/java/org/citra/citra_emu/utils/PicassoRoundedCornersTransformation.java
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2022-12-18 08:25:46 +0100
committerbunnei <bunneidev@gmail.com>2023-06-03 09:05:26 +0200
commitbb2cbbfba3ba255c11953f2bcca912046519cfb1 (patch)
treeb72691480e35039d67c0bd703596f1ae214bdaa7 /src/android/app/src/main/java/org/citra/citra_emu/utils/PicassoRoundedCornersTransformation.java
parentcmake: Integrate bundled FFmpeg for Android. (diff)
downloadyuzu-bb2cbbfba3ba255c11953f2bcca912046519cfb1.tar
yuzu-bb2cbbfba3ba255c11953f2bcca912046519cfb1.tar.gz
yuzu-bb2cbbfba3ba255c11953f2bcca912046519cfb1.tar.bz2
yuzu-bb2cbbfba3ba255c11953f2bcca912046519cfb1.tar.lz
yuzu-bb2cbbfba3ba255c11953f2bcca912046519cfb1.tar.xz
yuzu-bb2cbbfba3ba255c11953f2bcca912046519cfb1.tar.zst
yuzu-bb2cbbfba3ba255c11953f2bcca912046519cfb1.zip
Diffstat (limited to 'src/android/app/src/main/java/org/citra/citra_emu/utils/PicassoRoundedCornersTransformation.java')
-rw-r--r--src/android/app/src/main/java/org/citra/citra_emu/utils/PicassoRoundedCornersTransformation.java45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/utils/PicassoRoundedCornersTransformation.java b/src/android/app/src/main/java/org/citra/citra_emu/utils/PicassoRoundedCornersTransformation.java
new file mode 100644
index 000000000..892b46387
--- /dev/null
+++ b/src/android/app/src/main/java/org/citra/citra_emu/utils/PicassoRoundedCornersTransformation.java
@@ -0,0 +1,45 @@
+package org.citra.citra_emu.utils;
+
+import android.graphics.Bitmap;
+import android.graphics.BitmapShader;
+import android.graphics.Canvas;
+import android.graphics.Paint;
+import android.graphics.Rect;
+import android.graphics.RectF;
+
+import com.squareup.picasso.Transformation;
+
+public class PicassoRoundedCornersTransformation implements Transformation {
+ @Override
+ public Bitmap transform(Bitmap icon) {
+ final int width = icon.getWidth();
+ final int height = icon.getHeight();
+ final Rect rect = new Rect(0, 0, width, height);
+ final int size = Math.min(width, height);
+ final int x = (width - size) / 2;
+ final int y = (height - size) / 2;
+
+ Bitmap squaredBitmap = Bitmap.createBitmap(icon, x, y, size, size);
+ if (squaredBitmap != icon) {
+ icon.recycle();
+ }
+
+ Bitmap output = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
+ Canvas canvas = new Canvas(output);
+ BitmapShader shader = new BitmapShader(squaredBitmap, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP);
+ Paint paint = new Paint();
+ paint.setAntiAlias(true);
+ paint.setShader(shader);
+
+ canvas.drawRoundRect(new RectF(rect), 10, 10, paint);
+
+ squaredBitmap.recycle();
+
+ return output;
+ }
+
+ @Override
+ public String key() {
+ return "circle";
+ }
+} \ No newline at end of file