2014-07-21 2 views
1

나는 동그라미 모양의 이미지를 만드는 방법에 대한 몇 가지 예를 발견하고 가장 쉬운 방법을 택했습니다. 원형 이미지에 검은 색 경계선을 만들려고하고 있지만 생각할 수 없습니다. 새 원형 이미지에 검은 색 경계선을 그리는 방법.경계선을 동그라미 모양의 이미지 문제로 설정

public Bitmap getCircleBitmap(Bitmap bitmap){ 
    Bitmap circleBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888); 
    BitmapShader shader = new BitmapShader (bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP); 
    Paint paint = new Paint(); 
    paint.setColor(Color.BLACK); 
    paint.setShader(shader); 
    paint.setAntiAlias(true); 
    Canvas c = new Canvas(circleBitmap); 

    Path path = new Path(); 

    path.addCircle(((float) bitmap.getWidth())/2,((float) bitmap.getHeight())/2 , 
          (Math.min(((float) bitmap.getWidth()),((float) bitmap.getHeight()))/2),Path.Direction.CCW); 
    c.clipPath(path); 
    c.drawCircle(bitmap.getWidth()/2, bitmap.getHeight()/2 , bitmap.getWidth()/2, paint); 
    return circleBitmap; 
} 

감사 :

이 내 코드입니다.

답변

1

이 시도 ... 이것은 나를 위해 일한 것입니다, 그것은 당신을 도와줍니다

int w = bitmap.getWidth();           
int h = bitmap.getHeight();           

int radius = Math.min(h/2, w/2);         
Bitmap output = Bitmap.createBitmap(w + 8, h + 8, Config.ARGB_8888); 

Paint p = new Paint();            
p.setAntiAlias(true);            

Canvas c = new Canvas(output);          
c.drawARGB(0, 0, 0, 0);            
p.setStyle(Style.FILL);            

c.drawCircle((w/2) + 4, (h/2) + 4, radius, p);     

p.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));     

c.drawBitmap(bitmap, 4, 4, p);          
p.setXfermode(null);             
p.setStyle(Style.STROKE);           
p.setColor(Color.WHITE);            
p.setStrokeWidth(3);             
c.drawCircle((w/2) + 4, (h/2) + 4, radius, p);     

return output; 
+0

감사합니다 ....... – joseRo

1

희망 ..

public static Bitmap getCircularBitmap(Bitmap bitmap) { 
if (bitmap == null || bitmap.isRecycled()) { 
    return null; 
} 
float radius = bitmap.getWidth() > bitmap.getHeight() ? ((float) bitmap 
     .getHeight())/2f : ((float) bitmap.getWidth())/2f; 
Bitmap canvasBitmap = Bitmap.createBitmap(bitmap.getWidth(), 
     bitmap.getHeight(), Bitmap.Config.ARGB_8888); 
BitmapShader shader = new BitmapShader(bitmap, TileMode.CLAMP, 
     TileMode.CLAMP); 
Paint paint = new Paint(); 
paint.setAntiAlias(true); 
paint.setShader(shader); 

Canvas canvas = new Canvas(canvasBitmap); 

canvas.drawCircle(bitmap.getWidth()/2, bitmap.getHeight()/2, 
     radius, paint); 

return canvasBitmap; 

}

0

이 시도,

가 원을 만들 수 있습니다. Drawable의 xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="oval" > 


<solid android:color="#00000000" /> 

<stroke 
android:width="1dp" 
android:color="#ff000000"/> 

</shape> 

이 서클 드로어 블을 볼 배경으로 설정하십시오.