2013-02-06 8 views
0

사용자 정의보기는 RelativeLayout이고 ListView (모두 부모 - 너비 및 높이와 일치하도록 설정 됨)입니다. My Custom View사용자 지정보기의 일부만 그립니다.

내가 그릴 수있는 유일한 부분은 내 View, (회색으로 표시) 동안 다른 모든 부분의 RECT 것을 원하는 : 아래 그림에서 볼 수 있듯이 목록의 상단에 나는 View이 보기의 내용이 투명 해집니다.

내가 할 수있는 방법이 있습니까? 이미 RelativeLayout을 확장하고 해당 onDraw() 메서드를 재정의하려했으나 특정 영역 (회색으로 표시) 만 그릴 수 없었습니다.

+0

이 같은 효과를 찾고 있습니까 : http://code.google.com/p/android-wheel/ –

+0

@SourabSharma no .. 나는이 프로젝트를 알고 있으며, 내가 달성하려고하는 것이 아닙니다. –

답변

0

결국 나는 RelativeLayout을 확장하고 draw() 메서드를 재정 의하여 그 작업을 수행했습니다.

@Override 
protected void draw(Canvas canvas) { 
    canvas.clipRect(magnifiedRegion.getLeft(), magnifiedRegion.getTop(), magnifiedRegion.getRight(), magnifiedRegion.getBottom()); 
    super.draw(canvas); 
} 

여기서 magnifiedRegion은 위의 질문에서 언급 한 내보기입니다.

참고 :이 생성자 this.setWillNotDraw(false); 그렇지 않으면, draw() 방법은 프레임 워크에 의해 호출되지 않습니다를 설정해야합니다 (우리의 루트보기 때문에 ViewGroup - 그것은 최적화 안드로이드 프레임 워크는 기본적으로 수행입니다).