Advertisement
hacknik

Round bitmap image

May 26th, 2015
295
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.40 KB | None | 0 0
  1.  
  2. package com.test.asample;
  3.  
  4. import android.app.Activity;
  5. import android.graphics.Bitmap;
  6. import android.graphics.Bitmap.Config;
  7. import android.graphics.Canvas;
  8. import android.graphics.Color;
  9. import android.graphics.Paint;
  10. import android.graphics.PorterDuff.Mode;
  11. import android.graphics.PorterDuffXfermode;
  12. import android.graphics.Rect;
  13. import android.graphics.drawable.BitmapDrawable;
  14. import android.graphics.drawable.Drawable;
  15. import android.os.Bundle;
  16. import android.widget.ImageView;
  17.  
  18. /**
  19.  * @author user
  20.  *
  21.  */
  22. public class WebViewActivity extends Activity {
  23.  
  24.     @Override
  25.     public void onCreate(Bundle savedInstanceState) {
  26.         super.onCreate(savedInstanceState);
  27.         setContentView(R.layout.reservation_webview);
  28.  
  29.         ImageView imageView = (ImageView) findViewById(R.id.imageview);
  30.         Drawable myIcon = getResources().getDrawable(R.drawable.client_bg);
  31.  
  32.         Bitmap imageaa = drawableToBitmap(myIcon);
  33.         int w = imageaa.getWidth();
  34.         imageaa = getCroppedBitmap(drawableToBitmap(myIcon), w);
  35.  
  36.         imageView.setImageBitmap(imageaa);
  37.  
  38.     }
  39.  
  40.     public static Bitmap drawableToBitmap(Drawable drawable) {
  41.         if (drawable instanceof BitmapDrawable) {
  42.             return ((BitmapDrawable) drawable).getBitmap();
  43.         }
  44.  
  45.         Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(),
  46.                 drawable.getIntrinsicHeight(), Config.ARGB_8888);
  47.         Canvas canvas = new Canvas(bitmap);
  48.         drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
  49.         drawable.draw(canvas);
  50.  
  51.         return bitmap;
  52.     }
  53.  
  54.     public static Bitmap getCroppedBitmap(Bitmap bmp, int radius) {
  55.         Bitmap sbmp;
  56.         if (bmp.getWidth() != radius || bmp.getHeight() != radius)
  57.             sbmp = Bitmap.createScaledBitmap(bmp, radius, radius, false);
  58.         else
  59.             sbmp = bmp;
  60.         Bitmap output = Bitmap.createBitmap(sbmp.getWidth(), sbmp.getHeight(),
  61.                 Config.ARGB_8888);
  62.         Canvas canvas = new Canvas(output);
  63.  
  64.         final int color = 0xffa19774;
  65.         final Paint paint = new Paint();
  66.         final Rect rect = new Rect(0, 0, sbmp.getWidth(), sbmp.getHeight());
  67.  
  68.         paint.setAntiAlias(true);
  69.         paint.setFilterBitmap(true);
  70.         paint.setDither(true);
  71.         canvas.drawARGB(0, 0, 0, 0);
  72.         paint.setColor(Color.parseColor("#BAB399"));
  73.         canvas.drawCircle(sbmp.getWidth() / 2 + 0.7f,
  74.                 sbmp.getHeight() / 2 + 0.7f, sbmp.getWidth() / 2 + 0.1f, paint);
  75.         paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
  76.         canvas.drawBitmap(sbmp, rect, rect, paint);
  77.  
  78.         return output;
  79.     }
  80.  
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement