#Region Project Attributes
#ApplicationLabel: RoundBitmapWithBorder
#VersionCode: 1
#VersionName:
#SupportedOrientations: landscape
#CanInstallToExternalStorage: False
#End Region
#Region Activity Attributes
#FullScreen: False
#IncludeTitle: True
#End Region
Sub Process_Globals
Dim nativeMe As JavaObject
End Sub
Sub Globals
Dim bm, bm1, bm2 As Bitmap
Private ImageView1 As ImageView
Private ImageView2 As ImageView
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("main")
nativeMe.InitializeContext
Dim borderWidth1 As Int = 50
Dim borderColor1 As Int = Colors.White
ImageView1.Bitmap = Null
bm.Initialize(File.DirAssets,"pluto.jpg")
bm1 = nativeMe.RunMethod("getRoundBitmap",Array(bm,borderColor1, borderWidth1))
ImageView1.Bitmap = bm1
Dim borderWidth2 As Int = 15
Dim borderColor2 As Int = Colors.Magenta
ImageView2.Bitmap = Null
bm.Initialize(File.DirAssets,"stitch.jpg")
borderColor2 = Colors.ARGB(255,200,0,0)
bm2 = nativeMe.RunMethod("addSquareBorder",Array(bm, borderWidth2, borderColor2))
ImageView2.Bitmap = bm2
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
#If Java
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Path;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.Path.FillType;
import android.graphics.Paint;
import android.graphics.Color;
import android.view.View;
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.BitmapShader;
import android.graphics.Shader;
import android.graphics.PorterDuffXfermode;
import android.graphics.PorterDuff.Mode;
public static Bitmap getRoundBitmap(Bitmap scaleBitmapImage, int borderColor, int borderWidth) {
int targetWidth = 1000;
int targetHeight = 1000;
int radius = Math.min((targetHeight - 5)/2, (targetWidth - 5)/2);
Bitmap targetBitmap = Bitmap.createBitmap(targetWidth, targetHeight,
Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(targetBitmap);
Path path = new Path();
path.addCircle(((float) targetWidth - 1) / 2,
((float) targetHeight - 1) / 2,
(Math.min(((float) targetWidth), ((float) targetHeight)) / 2),
Path.Direction.CCW);
canvas.clipPath(path);
Bitmap sourceBitmap = scaleBitmapImage;
canvas.drawBitmap(sourceBitmap, new Rect(0, 0, sourceBitmap.getWidth(),
sourceBitmap.getHeight()), new Rect(0, 0, targetWidth,
targetHeight), null);
Paint p = new Paint();
p.setAntiAlias(true);
// canvas.drawBitmap(sourceBitmap, 4, 4, p);
p.setXfermode(null);
p.setStyle(Paint.Style.STROKE);
p.setColor(borderColor);
p.setStrokeWidth(borderWidth);
canvas.drawCircle((targetWidth / 2) , (targetHeight / 2) , radius, p);
return targetBitmap;
}
public static Bitmap addSquareBorder(Bitmap bmp, int borderSize, int bordercolor) {
Bitmap bmpWithBorder = Bitmap.createScaledBitmap(bmp, bmp.getWidth() + borderSize * 2, bmp.getHeight() + borderSize * 2, false);
Canvas canvas = new Canvas(bmpWithBorder);
canvas.drawColor(bordercolor);
canvas.drawBitmap(bmp, borderSize, borderSize, null);
return bmpWithBorder;
}
#End If