2014-10-12 5 views
0

현재 버튼 템플릿 (레이아웃)이 XML로 있으며 여기에서 리소스의 코드를로드하여 동적으로 버튼을 만듭니다.안드로이드의 뷰 모양을 자르기/자르기

여기에 질문이 있습니다. 버튼 (또는 그 문제에 대한보기)을 특정 모양으로 자르거나자를 수있는 방법이 있습니까?

사각형 단추가 있다고 가정 해 봅시다. 삼각형 모양을 만들기 위해자를 수 있습니까? 그것을 위해 사용자 정의 비트 맵을 만들 필요없이 거기에 가능성은 무엇

enter image description here

예를 들면 다음과 같습니다입니까? (XML이 비트 맵에서 올바르게 작동하지 않는 특정 획/반경을 사용하기 때문에)

자를 후에도 크기와 여백을 유지할 수 있습니까? 나는 정말로 알고 싶어합니다.

도움을 주실 분은 미리 감사드립니다!

답변

1

Canvas을 원하는대로 사용할 수 있습니다.

public Bitmap getCroppedBitmap(Bitmap bitmap) { 

     Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), 
       bitmap.getHeight(), Config.ARGB_8888); 
     Canvas canvas = new Canvas(output); 
     final int color = 0xff424242; 
     Paint paint = new Paint(); 
     final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); 
     paint.setAntiAlias(true); 
     canvas.drawARGB(0, 0, 0, 0); 
     paint.setColor(color); 
     canvas.drawCircle((bitmap.getWidth()/2), (bitmap.getHeight()/2), 
       (output.getWidth()/2), paint); 
     paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); 
     canvas.drawBitmap(bitmap, rect, rect, paint); 
     canvas = null; 
     paint = null; 
    // bitmap.recycle(); 
     return output; 
    } 

는 비트 맵으로보기를 변환하려면 : 그것은 당신이 등

예를 들어, 기능을 다음을 제공하는 최초의 비트 맵의 ​​원형 잘린 비트 맵을 반환 몇 가지 영역을 삭제, 모양을 그려보기를 수정할 수 있습니다 , this 참조.

+0

예,보기를 자르기위한 아주 간단한 샘플을 제공 할 수 있습니까? –

+0

@ КристиянКацаров 편집을 확인하십시오. – berserk

+0

답변을 주셔서 감사합니다. 아직 테스트하지는 않았지만 정확히 찾고 싶지 않습니다. "사용자 정의 비트 맵을 만들지 않고도 그곳에서 가능한 것은 무엇입니까?" - 즉, 비트 맵을 뷰에서 어떻게 가져올 수 있습니까? – John

관련 문제