diff options
author | bunnei <bunneidev@gmail.com> | 2022-12-18 08:25:46 +0100 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2023-06-03 09:05:26 +0200 |
commit | bb2cbbfba3ba255c11953f2bcca912046519cfb1 (patch) | |
tree | b72691480e35039d67c0bd703596f1ae214bdaa7 /src/android/app/src/main/java/org/citra/citra_emu/utils/PicassoRoundedCornersTransformation.java | |
parent | cmake: Integrate bundled FFmpeg for Android. (diff) | |
download | yuzu-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.java | 45 |
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 |