2012-11-02 1 views
3

xml을 사용하지 않고 프로그래밍 방식으로 일반 직사각형 이미지를 원형 이미지로 변환하려면이 링크 Navigation Drawer (Google+ vs. YouTube)을 참조하십시오. 지금까지이 링크 How to set bitmap in circular imageview?을 따라 갔지만 이미지에 어두운 원을 그려 넣었습니다. 어떻게해야합니까? 환영 @sanjaykumar일반 사각형 이미지를 원형 이미지로 프로그래밍 방식으로 변환하려고합니다

답변

0
Bitmap bitmap = BitmapFactory.decodeResource(convertView.getResources(), R.drawable.ic_launcher); 
       Bitmap circleBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888); 

       BitmapShader shader = new BitmapShader (bitmap, TileMode.CLAMP, TileMode.CLAMP); 
       Paint paint = new Paint(); 
       paint.setShader(shader); 
       paint.setAntiAlias(true); 

       Canvas c = new Canvas(circleBitmap); 
       c.drawCircle(bitmap.getWidth()/2, bitmap.getHeight()/2, bitmap.getWidth()/2, paint); 

       imgProfilePic.setImageBitmap(circleBitmap); 
+0

, 난 당신이 광장 비트 맵과 원 bimap에 다음 사각형을 변환해야 유용한 –

0
public Bitmap dstBmp; 
Bitmap getRoundedBitmapnow(Bitmap bitmap) 
{ 
//   convert rectangle to square 
     if (bitmap.getWidth() >= bitmap.getHeight()){ 

      dstBmp = Bitmap.createBitmap(
      bitmap, 
      bitmap.getWidth()/2 - bitmap.getHeight()/2, 
      0, 
      bitmap.getHeight(), 
      bitmap.getHeight() 
      ); 

     }else{ 

      dstBmp = Bitmap.createBitmap(
      bitmap, 
      0, 
      bitmap.getHeight()/2 - bitmap.getWidth()/2, 
      bitmap.getWidth(), 
      bitmap.getWidth() 
      ); 
     } 
     //   create circle 
     Bitmap output = Bitmap.createBitmap(dstBmp.getWidth(), 
     dstBmp.getHeight(), Config.ARGB_8888); 
     Canvas canvas = new Canvas(output); 

     final int color = 0xff424242; 
     final Paint paint = new Paint(); 

     final Rect rect1 = new Rect(0, 0, dstBmp.getWidth(), dstBmp.getHeight()); 
     final RectF rectF1 = new RectF(rect1); 


     paint.setAntiAlias(true); 
     canvas.drawARGB(0, 0, 0, 0); 
     paint.setColor(color); 
     canvas.drawOval(rectF1, paint); 

     paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); 
     canvas.drawBitmap(dstBmp, rect1, rect1, paint); 

     return output; 

} 
+0

우선 기쁘다 .... –

관련 문제