// If you would like to create a circle of the image set pixels to half the width of the image.
		internal static   Bitmap GetRoundedCornerBitmap(Bitmap bitmap, int pixels)
		{
			Bitmap output = null;

			try
			{
				output = Bitmap.CreateBitmap(bitmap.Width, bitmap.Height, Bitmap.Config.Argb8888);
				Canvas canvas = new Canvas(output);

				Color color = new Color(66, 66, 66);
				Paint paint = new Paint();
				Rect rect = new Rect(0, 0, bitmap.Width, bitmap.Height);
				RectF rectF = new RectF(rect);
				float roundPx = pixels;

				paint.AntiAlias = true;
				canvas.DrawARGB(0, 0, 0, 0);
				paint.Color = color;
				canvas.DrawRoundRect(rectF, roundPx, roundPx, paint);

				paint.SetXfermode(new PorterDuffXfermode(PorterDuff.Mode.SrcIn));
				canvas.DrawBitmap(bitmap, rect, rect, paint);
			}
			catch (System.Exception err)
			{
				System.Console.WriteLine ("GetRoundedCornerBitmap Error - " + err.Message);
			}

			return output;
		}
        static Bitmap GetCroppedBitmap (Bitmap bmp, int radius)
        {
            Bitmap sbmp;
            if (bmp.Width != radius || bmp.Height != radius)
                sbmp = Bitmap.CreateScaledBitmap (bmp, radius, radius, false);
            else
                sbmp = bmp;
            var output = Bitmap.CreateBitmap (sbmp.Width,
                             sbmp.Height, Bitmap.Config.Argb8888);
            var canvas = new Canvas (output);

            var paint = new Paint ();
            var rect = new Rect (0, 0, sbmp.Width, sbmp.Height);

            paint.AntiAlias = true;
            paint.FilterBitmap = true;
            paint.Dither = true;
            canvas.DrawARGB (0, 0, 0, 0);
            paint.Color = Color.ParseColor ("#BAB399");
            canvas.DrawCircle (sbmp.Width / 2 + 0.7f, sbmp.Height / 2 + 0.7f,
                sbmp.Width / 2 + 0.1f, paint);
            paint.SetXfermode (new PorterDuffXfermode (PorterDuff.Mode.SrcIn));
            canvas.DrawBitmap (sbmp, rect, rect, paint);

            return output;
        }
	    public BezelImageView(Context context, IAttributeSet attrs, int defStyle) : base(context, attrs, defStyle)
		{
			// Attribute initialization
	        var a = context.ObtainStyledAttributes(attrs, Resource.Styleable.BezelImageView, defStyle, 0);
	
	        mMaskDrawable = a.GetDrawable(Resource.Styleable.BezelImageView_maskDrawable);
	        if (mMaskDrawable == null) {
	            mMaskDrawable = Resources.GetDrawable(Resource.Drawable.bezel_mask);
	        }
	        mMaskDrawable.Callback = this;
	
	        mBorderDrawable = a.GetDrawable(Resource.Styleable.BezelImageView_borderDrawable);
	        if (mBorderDrawable == null) {
	            mBorderDrawable = Resources.GetDrawable(Resource.Drawable.bezel_border);
	        }
	        mBorderDrawable.Callback = this;
	
	        a.Recycle();
	
	        // Other initialization
	        mMaskedPaint = new Paint();
	        mMaskedPaint.SetXfermode(new PorterDuffXfermode(PorterDuff.Mode.SrcAtop));
	
	        mCopyPaint = new Paint();
		}
        public static Paint CreateEraser()
        {
            var eraserPaint = new Paint();
            eraserPaint.Color = Color.Transparent;
            eraserPaint.SetXfermode(new PorterDuffXfermode(PorterDuff.Mode.Clear));
            eraserPaint.Flags = PaintFlags.AntiAlias;

            return eraserPaint;
        }
Example #5
0
 public static Bitmap GetRoundedCornerBitmap(this Bitmap bitmap, int roundPixelSize)
 {
     Bitmap output = Bitmap.CreateBitmap(bitmap.Width, bitmap.Height, Bitmap.Config.Argb8888);
     var canvas = new Canvas(output);
     var paint = new Paint();
     var rect = new Rect(0, 0, bitmap.Width, bitmap.Height);
     var rectF = new RectF(rect);
     var roundPx = roundPixelSize;
     paint.AntiAlias = true;
     canvas.DrawRoundRect(rectF,roundPx,roundPx, paint);
     paint.SetXfermode(new PorterDuffXfermode(PorterDuff.Mode.SrcIn));
     canvas.DrawBitmap(bitmap, rect, rect, paint);
     return output;
 }
Example #6
0
        public ClingDrawer(Resources resources, Color showcaseColor)
        {
            this.showcaseColor = showcaseColor;

            PorterDuffXfermode mBlender = new PorterDuffXfermode(PorterDuff.Mode.Clear);
            mEraser = new Paint();
            mEraser.Color = Color.White;
            mEraser.Alpha = 0;
            mEraser.SetXfermode(mBlender);
            mEraser.AntiAlias = true;

            mShowcaseDrawable = resources.GetDrawable(Resource.Drawable.cling_bleached);
            mShowcaseDrawable.SetColorFilter(showcaseColor, PorterDuff.Mode.Multiply);
        }
 public static Bitmap GetRoundedCornerBitmap(this Bitmap bitmap, int? roundPixelSize = null)
 {
     var chooseSize = bitmap.Width > bitmap.Height ? bitmap.Height : bitmap.Width;
     roundPixelSize = roundPixelSize ?? (int)Application.Context.Resources.GetDimension(Resource.Dimension.RoundedCorners);
     var output = Bitmap.CreateBitmap(chooseSize, chooseSize, Bitmap.Config.Argb8888);
     var canvas = new Canvas(output);
     var paint = new Paint();
     var rect = new Rect(0, 0, chooseSize, chooseSize);
     var rectF = new RectF(rect);
     var roundPx = roundPixelSize.Value;
     paint.AntiAlias = true;
     canvas.DrawRoundRect(rectF, roundPx, roundPx, paint);
     paint.SetXfermode(new PorterDuffXfermode(PorterDuff.Mode.SrcIn));
     canvas.DrawBitmap(bitmap, rect, rect, paint);
     return output;
 }
Example #8
0
		public Java.Lang.Object Evaluate (float fraction, Java.Lang.Object startValue, Java.Lang.Object endValue)
		{
			var bmp1 = startValue as Bitmap;
			var bmp2 = endValue as Bitmap;
			if (cacheBitmap == null)
				cacheBitmap = Bitmap.CreateBitmap (bmp1.Width, bmp1.Height, Bitmap.Config.Argb8888);
			if (blendPaint == null) {
				blendPaint = new Paint ();
				blendPaint.SetXfermode (new PorterDuffXfermode (PorterDuff.Mode.SrcOver));
			}

			using (var canvas = new Canvas (cacheBitmap)) {
				canvas.DrawBitmap (bmp1, 0, 0, null);
				blendPaint.Alpha = (int)((1 - fraction) * 255);
				canvas.DrawBitmap (bmp2, 0, 0, blendPaint);
			}
			return cacheBitmap;
		}
Example #9
0
        static CategoryBadge()
        {
            center = OverallSize / 2;
            mainCenter = center + offset;

            backPaint = new Paint () {
                Color = Color.Rgb (0xc7, 0xc7, 0xc7),
                AntiAlias = true
            };
            backPaint.SetShader (new LinearGradient (mainCenter, 0, mainCenter, radius * 2,
                                                     Color.Rgb (0xc7, 0xc7, 0xc7),
                                                     Color.Argb (0xa2, 0xc7, 0xc70, 0xc7),
                                                     //Color.Argb (0xa2, 0xc7, 0xc7, 0xc7),
                                                     Shader.TileMode.Clamp));
            darkerBackPaint = new Paint () {
                Color = Color.Rgb (0xa7, 0xa7, 0xa7),
                AntiAlias = true
            };
            shadowPaint = new Paint () {
                Color = Color.Rgb (0x9a, 0x9a, 0x9a),
                AntiAlias = true
            };
            removePaint = new Paint () {
                AntiAlias = true,
                Color = Color.White,
                TextAlign = Paint.Align.Center,
                TextSize = 14.ToPixels ()
            };
            //removePaint.SetXfermode (new PorterDuffXfermode (PorterDuff.Mode.Clear));
            removePaint.SetXfermode (new PorterDuffXfermode (PorterDuff.Mode.DstIn));
            redPaint = new Paint () {
                Color = Color.Rgb (0xff, 0x44, 0x44),
                AntiAlias = true
            };
            greenPaint = new Paint () {
                Color = Color.Rgb (0x99, 0xcc, 0x00),
                AntiAlias = true
            };
            imgPaint = new Paint () {
                AntiAlias = false,
                FilterBitmap = false
            };
        }
        public Bitmap Transform(Bitmap source)
        {
            Bitmap result = Bitmap.CreateBitmap(source.Width, source.Height, source.GetConfig());
            Bitmap noise;
            try
            {
                noise = picasso.Load(Resource.Drawable.noise).Get();
            }
            catch (Exception)
            {
                throw new Exception("Failed to apply transformation! Missing resource.");
            }

            BitmapShader shader = new BitmapShader(noise, Shader.TileMode.Repeat, Shader.TileMode.Repeat);

            ColorMatrix colorMatrix = new ColorMatrix();
            colorMatrix.SetSaturation(0);
            ColorMatrixColorFilter filter = new ColorMatrixColorFilter(colorMatrix);

            Paint paint = new Paint(PaintFlags.AntiAlias);
            paint.SetColorFilter(filter);

            Canvas canvas = new Canvas(result);
            canvas.DrawBitmap(source, 0, 0, paint);

            paint.SetColorFilter(null);
            paint.SetShader(shader);
            paint.SetXfermode(new PorterDuffXfermode(PorterDuff.Mode.Multiply));

            canvas.DrawRect(0, 0, canvas.Width, canvas.Height, paint);

            source.Recycle();
            noise.Recycle();

            return result;
        }
Example #11
0
		/// <summary>
		/// Gets the oval bitmap.
		/// </summary>
		/// <returns>The oval bitmap.</returns>
		/// <param name="bitmap">Bitmap.</param>
		private Bitmap GetOvalBitmap(Bitmap bitmap) 
		{
			Bitmap output = null;

			if(bitmap != null)
			{
				output = Bitmap.CreateBitmap(bitmap.Width, bitmap.Height, Bitmap.Config.Argb8888);
				Canvas canvas = new Canvas(output);

				Paint paint = new Paint();
				Rect rect = new Rect(0, 0, bitmap.Width, bitmap.Height);
				RectF rectF = new RectF(rect);

				paint.AntiAlias = true;
				canvas.DrawARGB(0, 0, 0, 0);
				paint.Color = Color.Red;
				canvas.DrawOval(rectF, paint);

				paint.SetXfermode(new PorterDuffXfermode(PorterDuff.Mode.SrcIn));
				canvas.DrawBitmap(bitmap, rect, rect, paint);
			}

			return output;
		}
Example #12
0
        protected override void OnDraw(Shape shape, Android.Graphics.Canvas canvas, Paint paint)
        {
            var height = canvas.ClipBounds.Bottom;
            var width = canvas.ClipBounds.Right;
            if (noChild)
            {
                var borderHeight = (int)(this.borderThickness.Top + this.borderThickness.Bottom);
                var borderWidth = (int)(this.borderThickness.Left + this.borderThickness.Right);
                height = borderHeight > 0 ? borderHeight : canvas.ClipBounds.Bottom;
                width = borderWidth > 0 ? borderWidth : canvas.ClipBounds.Right;
            }
            shape.Resize(width, height);
            shape.Draw(canvas, strokepaint);

            var pathInner = new Path();
            var rect = new RectF(
                (float)(borderThickness.Left),
                (float)(borderThickness.Top),
                (float)(canvas.ClipBounds.Right - borderThickness.Right),
                (float)(canvas.ClipBounds.Bottom - borderThickness.Bottom));
            pathInner.AddRoundRect(rect, cornerRadiusArray, Path.Direction.Cw);
            if (!noChild)
            {
                var clearPaint = new Paint();
                clearPaint.SetXfermode(new PorterDuffXfermode(PorterDuff.Mode.Clear));
                canvas.DrawPath(pathInner, clearPaint);
            }
            canvas.DrawPath(pathInner, fillpaint);
        }
		public static Bitmap getRoundedCroppedBitmap(Bitmap bitmap, int radius) {
			Bitmap finalBitmap;
			if (bitmap.Width != radius || bitmap.Height!= radius)
				finalBitmap = Bitmap.CreateScaledBitmap(bitmap, radius, radius,
					false);
			else
				finalBitmap = bitmap;
			Bitmap output = Bitmap.CreateBitmap(finalBitmap.Width,
				finalBitmap.Height, Bitmap.Config.Argb8888);
			Canvas canvas = new Canvas(output);

			 Paint paint = new Paint();
			Rect rect = new Rect(0, 0, finalBitmap.Width,
				finalBitmap.Height);

			paint.AntiAlias=true;
			paint.FilterBitmap=true;
			paint.Dither=true;
			canvas.DrawARGB(0, 0, 0, 0);
			paint.Color=Color.ParseColor("#BAB399");
			canvas.DrawCircle(finalBitmap.Width / 2 + 0.7f,
				finalBitmap.Height / 2 + 0.7f,
				finalBitmap.Width / 2 + 0.1f, paint);
			paint.SetXfermode(new PorterDuffXfermode(PorterDuff.Mode.SrcIn));
			canvas.DrawBitmap(finalBitmap, rect, rect, paint);

			return output;
		}	
        private void loadProfilePicture(Guid contactId)
        {
            if (contactId != null) {
                ContactDB cont = new ContactDB ();
                if (contacts.ContainsKey (contactId))
                    cont = contacts [contactId];

                byte[] imgdata = cont.ContactUser.Picture;
                Bitmap original = BitmapFactory.DecodeByteArray (imgdata, 0, imgdata.Length);
                Bitmap mask = Bitmap.CreateScaledBitmap (BitmapFactory.DecodeResource (Resources, Resource.Drawable.emptybackground), original.Width, original.Height, true);
                Bitmap result = Bitmap.CreateBitmap (mask.Width, mask.Height, Bitmap.Config.Argb8888);
                Canvas canv = new Canvas (result);
                Paint paint = new Paint (PaintFlags.AntiAlias);

                paint.SetXfermode (new PorterDuffXfermode (PorterDuff.Mode.DstIn));
                canv.DrawBitmap (original, 0, 0, null);
                canv.DrawBitmap (mask, 0, 0, paint);
                paint.SetXfermode (null);

                RunOnUiThread (delegate {
                    ImageView pic = (ImageView)converse.FindViewWithTag (new Java.Lang.String ("profilepic_" + contactId.ToString ()));
                    pic.SetImageBitmap (result);
                    original.Dispose ();
                    mask.Dispose ();
                    paint.Dispose ();
                    canv.Dispose ();
                    result.Dispose ();
                });
            }
        }
Example #15
0
        public void SetHardwareAccelerated(bool accelerated)
        {
            if (accelerated)
            {
                if (Build.VERSION.SdkInt >= BuildVersionCodes.Honeycomb)
                {
                    if (IsHardwareAccelerated)
                    {
                        var hardwarePaint = new Paint();
                        hardwarePaint.SetXfermode(new PorterDuffXfermode(PorterDuff.Mode.Overlay));

                        SetLayerType(LayerType.Hardware, hardwarePaint);
                    }
                    else
                    {
                        SetLayerType(LayerType.Software, null);
                    }
                }
                else
                {
                    DrawingCacheEnabled = true;
                }
            }
            else
            {
                if (Build.VERSION.SdkInt >= BuildVersionCodes.Honeycomb)
                {
                    SetLayerType(LayerType.Software, null);
                }
                else
                {
                    DrawingCacheEnabled = true;
                }
            }
        }
Example #16
0
        private void InitComponent()
        {
            var inflater = Application.Context.GetSystemService(Context.LayoutInflaterService) as LayoutInflater;
            if (inflater == null) return;

            inflater.Inflate(Resource.Layout.InfoViewLayout, this);
            _headerTextView = FindViewById<TextView>(Resource.Id.headerTextView);
            _bodyEditText = FindViewById<EditText>(Resource.Id.bodyEditText);

            _paint = new Paint(PaintFlags.AntiAlias);

            _maskPaint = new Paint(PaintFlags.AntiAlias | PaintFlags.FilterBitmap);
            _maskPaint.SetXfermode(new PorterDuffXfermode(PorterDuff.Mode.Clear));

            SetWillNotDraw(false);
        }
        /// <summary>
        /// Reshapes the image.
        /// </summary>
        /// <param name="sourceBitmap">The source bitmap.</param>
        private void ReshapeImage(Bitmap sourceBitmap)
        {
            if (sourceBitmap == null) return;

            using (var sourceRect = GetScaledRect(sourceBitmap.Height, sourceBitmap.Width))
            using (var rect = this.GetTargetRect(sourceBitmap.Height, sourceBitmap.Width))
            using (var output = Bitmap.CreateBitmap(rect.Width(), rect.Height(), Bitmap.Config.Argb8888))
            using (var canvas = new Canvas(output))
            using (var paint = new Paint())
            using (var rectF = new RectF(rect))
            {
                var roundRx = rect.Width() / 2;
                var roundRy = rect.Height() / 2;

                paint.AntiAlias = true;
                canvas.DrawARGB(0, 0, 0, 0);
                paint.Color = Android.Graphics.Color.ParseColor("#ff424242");
                canvas.DrawRoundRect(rectF, roundRx, roundRy, paint);

                paint.SetXfermode(new PorterDuffXfermode(PorterDuff.Mode.SrcIn));
                canvas.DrawBitmap(sourceBitmap, sourceRect, rect, paint);

                //this.DrawBorder(canvas, rect.Width(), rect.Height());

                this.Control.SetImageBitmap(output);
                // Forces the internal method of InvalidateMeasure to be called.
                this.Element.WidthRequest = this.Element.WidthRequest;
            }
        }
Example #18
0
		public static Bitmap GetRoundedCornerBitmap(Bitmap bitmap) {
			Bitmap output = Bitmap.CreateBitmap(bitmap.Width,
				bitmap.Height,Bitmap.Config.Argb8888);
			Canvas canvas = new Canvas(output);

			//int color = 0xff424242;
			Paint paint = new Paint();
			Rect rect = new Rect(0, 0, bitmap.Width, bitmap.Height);
			RectF rectF = new RectF(rect);
			float roundPx = 12.0f;

			paint.AntiAlias=true;
			canvas.DrawARGB(0, 0, 0, 0);
			paint.Color = Color.Red; //color;//Color.Transparent;
			canvas.DrawRoundRect(rectF, roundPx, roundPx, paint);

			paint.SetXfermode(new PorterDuffXfermode(PorterDuff.Mode.SrcIn));
			canvas.DrawBitmap(bitmap, rect, rect, paint);
			return output;
		}
Example #19
0
        private Bitmap GetCircleBitmap(int radius)
        {
            var output = Bitmap.CreateBitmap (_originBitmap.Width, _originBitmap.Height, Bitmap.Config.Argb8888);
            using (var canvas = new Canvas (output))
            using (var paint = new Paint (PaintFlags.AntiAlias))
            using (var rect = new Rect ((int)(_x - radius), (int)(_y - radius), (int)(_x + radius), (int)(_y + radius))) {
                canvas.DrawARGB (0, 0, 0, 0);
                canvas.DrawCircle (_x, _y, radius, paint);

                paint.SetXfermode (new PorterDuffXfermode (PorterDuff.Mode.SrcIn));
                canvas.DrawBitmap (_originBitmap, rect, rect, paint);

                return output;
            }
        }
Example #20
0
        private void Initialize()
        {
            ringPaint = new Paint () {
                Color = Color.Rgb (0x99, 0xcc, 0),
                AntiAlias = true
            };
            ringPaintHover = new Paint () {
                Color = Color.Rgb (0xcc, 0xff, 0),
                AntiAlias = true
            };
            borderPaint = new Paint () {
                Color = Color.Rgb (0x66, 0x99, 0),
                AntiAlias = true
            };
            var eraseColor = Color.Yellow;
            imageEraser = new Paint ();
            eraserChannel = new Paint () {
                Color = eraseColor,
                AntiAlias = true
            };
            imageEraser.SetXfermode (new AvoidXfermode (eraseColor, 255, AvoidXfermode.Mode.Target));

            image = BitmapFactory.DecodeResource (Resources, Resource.Drawable.ic_contact_picture);
            PrepImage ();
            //SetLayerType (Android.Views.LayerType.Software, null);
        }
		public static Bitmap getCircleBitmap(Context context, Bitmap input, int w , int h) 
		{
			//CREAMOS UN BITMAP TEMP CON LAS DIMENSIONES QUE LE PASAMOS
			Bitmap output = Bitmap.CreateBitmap(w, h, Bitmap.Config.Argb8888);
			//CRAMOS UN CANVAS EL CUAL NOS PERMITIRA DIBUJAR EL CIRCULO QUE NOS SERVIRA COMO MASCARA Y LE ASIGNAMOS EL BITMAP
			Canvas canvas = new Canvas(output);
			canvas.DrawARGB(0, 255, 0, 0);


			//DEFINIMOS UNA BROCHA YA QUE ES NECESARIA PARA DIBUJAR EL CIRCULO 
			Paint paint = new Paint();
			paint.AntiAlias=true;
			//string color = "#ff0002";
			//paint.Color=Color.ParseColor (color);

			//DIBUJAMOS EL CIRCULO DENTRO DEL CANVAS 
			canvas.DrawCircle(canvas.Height /2,canvas.Height /2,canvas.Height /2, paint);


			//LE APLICAMOS UN FILTRO A NUESTRA BROCHA PARA QUE CUANDO SE CONBINEN LOS ELEMENTOS DE LA IMAGEN ORIGINAL CON LA DIBUJADA EN EL CANVAS
			//ESTA APLIQUE EL RECORTE DE LA MASCARA
			paint.SetXfermode(new PorterDuffXfermode(PorterDuff.Mode.SrcIn));

			//LE ASIGNAMOS AL FONDO DE NUESTRO CANVAS LA IMAGEN QUE QUEREMOS QUE SE APLIQUE LA MASCARA, EN ESTE CASO ES LA IMAGEN
			//QUE SE LE ASIGNO AL CONTROL
			canvas.DrawBitmap(input, 0,0, paint);

			//REGRESAMOS LA IMAGEN YA RECOTADA 
			return output;
		}
        private static Bitmap GetRoundedCornerBitmap(Bitmap bitmap, int roundPixels, Rect srcRect, Rect destRect, int width,
			    int height)
        {
            Bitmap output = Bitmap.CreateBitmap(width, height, Bitmap.Config.Argb8888);
            Canvas canvas = new Canvas(output);

            Paint paint = new Paint();
            RectF destRectF = new RectF(destRect);

            paint.AntiAlias = true;
            canvas.DrawARGB(0, 0, 0, 0);
            paint.Color = Color.Argb(0xFF, 0x00, 0x00, 0x00);
            canvas.DrawRoundRect(destRectF, roundPixels, roundPixels, paint);

            paint.SetXfermode(new PorterDuffXfermode(PorterDuff.Mode.SrcIn));
            canvas.DrawBitmap(bitmap, srcRect, destRectF, paint);

            return output;
        }
Example #23
0
        private Bitmap CreateMask(int width, int height)
        {
            var mask = Bitmap.CreateBitmap(width, height, Bitmap.Config.Alpha8);
            var canvas = new Canvas(mask);

            var paint = new Paint(PaintFlags.AntiAlias) {Color = Color.White};

            canvas.DrawRect(0, 0, width, height, paint);

            paint.SetXfermode(new PorterDuffXfermode(PorterDuff.Mode.Clear));
            canvas.DrawRoundRect(new RectF(0, 0, width, height), CornerRadius, CornerRadius, paint);

            return mask;
        }
Example #24
0
		public static Bitmap GetRoundedCornerBitmap (Bitmap bitmap, int cornerRadius)
		{
			Bitmap output = Bitmap.CreateBitmap (bitmap.Width, bitmap.Height, Bitmap.Config.Argb8888);

			Canvas canvas = new Canvas(output);

			Paint paint = new Paint();
			Rect rect = new Rect(0, 0, bitmap.Width, bitmap.Height);
			RectF rectF = new RectF(rect);
			float roundPx = cornerRadius;

			paint.AntiAlias = true;
			canvas.DrawARGB(0, 0, 0, 0);
			paint.SetColorFilter (new ColorFilter ());
			canvas.DrawRoundRect(rectF, roundPx, roundPx, paint);
			paint.SetXfermode (new PorterDuffXfermode (PorterDuff.Mode.SrcIn));
			canvas.DrawBitmap (bitmap, rect, rect, paint);

			return output;
		}
            private void DrawIntoBitmap(Bitmap bm)
            {
                float x = bm.Width;
                float y = bm.Height;
                Canvas c = new Canvas (bm);
                Paint p = new Paint ();
                p.AntiAlias = true;

                p.Alpha = 0x80;
                c.DrawCircle (x / 2, y / 2, x / 2, p);

                p.Alpha = 0x30;
                p.SetXfermode (new PorterDuffXfermode (PorterDuff.Mode.Src));
                p.TextSize = 60;
                p.TextAlign = Paint.Align.Center;
                Paint.FontMetrics fm = p.GetFontMetrics ();
                c.DrawText ("Alpha", x / 2, (y - fm.Ascent) / 2, p);
            }
Example #26
0
        private static Bitmap MakeImageRound (Bitmap bitmap)
        {
            Bitmap output = Bitmap.CreateBitmap (bitmap.Width, bitmap.Height, Bitmap.Config.Argb8888);
            var canvas = new Canvas (output);

            var rect = new Rect (0, 0, bitmap.Width, bitmap.Height);
            var rectF = new RectF (rect);

            var paint = new Paint ();
            paint.AntiAlias = true;
            paint.Color = Color.Black;

            canvas.DrawARGB (0, 0, 0, 0);
            canvas.DrawRoundRect (rectF, bitmap.Width, bitmap.Height, paint);

            paint.SetXfermode (new PorterDuffXfermode (PorterDuff.Mode.SrcIn));

            canvas.DrawBitmap (bitmap, rect, rect, paint);

            return output;
        }
Example #27
0
        /// <summary>
        /// Sets the color of the action bar.
        /// </summary>
        /// <param name="color">Color.</param>
        protected void SetActionBarColor(Color color)
        {
            Resources res = this.Resources;
            var maskDrawable = res.GetDrawable(Resource.Drawable.actionbar_icon_mask) as BitmapDrawable;
            if (maskDrawable == null)
            {
                return;
            }

            var maskBitmap = maskDrawable.Bitmap;
            int width = maskBitmap.Width;
            int height = maskBitmap.Height;

            var outBitmap = Bitmap.CreateBitmap(width, height, Bitmap.Config.Argb8888);
            Canvas canvas = new Canvas(outBitmap);
            canvas.DrawBitmap(maskBitmap, 0, 0, null);

            var maskedPaint = new Paint();
            maskedPaint.Color = color;
            maskedPaint.SetXfermode(new PorterDuffXfermode(PorterDuff.Mode.SrcAtop));

            canvas.DrawRect(0, 0, width, height, maskedPaint);
            var outDrawable = new BitmapDrawable(res, outBitmap);
            SupportActionBar.SetIcon(outDrawable);
        }
        public static ImageView CreateMultipleTransitionImage(TransitionEffectType efType, Context c)
        {
            ImageView toReturn = new ImageView (c);
            ImageView emptyTrImage = new ImageView (c);
            emptyTrImage.SetImageResource (Resource.Drawable.emptytransition);
            int transitionCount = CountTransitionEffects (efType);
            string nsText = transitionCount < 10 ? transitionCount.ToString () : "9+";

            Bitmap bitmap = Bitmap.CreateBitmap (emptyTrImage.Width, emptyTrImage.Height, Bitmap.Config.Rgb565);
            Canvas canvas = new Canvas (bitmap);
            Paint paint = new Paint ();
            paint.Color = Android.Graphics.Color.White;
            paint.StrokeWidth = 18f;
            paint.SetXfermode (new PorterDuffXfermode (PorterDuff.Mode.SrcOver)); // Text Overlapping Pattern
            canvas.DrawBitmap (bitmap, 0, 0, paint);
            canvas.DrawText (nsText, 10, 10, paint);

            toReturn.SetImageBitmap (bitmap);
            canvas.Dispose ();
            bitmap.Dispose ();

            return toReturn;
        }