2014-11-21 3 views
0

뷰 (외곽 작업 버튼)에 개요를 설정하려고합니다. 요점은 잠시 동안 사용했기 때문에 코드 나 오류에 아무런 문제가 없으며 그림자를 완벽하게 보여주고 있다는 것입니다. 그리고 아무데도 그림자가 보이지 않게되었습니다. 나는이 모든 것을 확인하고 문제를 찾을 수 없다고 생각합니다.개요 제공자가 더 이상 작동하지 않습니다.

그래서 이것은 내가 작업 봤는데 내 코드입니다 :

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
     ImageButton fab = (ImageButton) findViewById(R.id.fab); 

     ViewOutlineProvider outlineProvider = new ViewOutlineProvider() { 
      @TargetApi(Build.VERSION_CODES.LOLLIPOP) 
      @Override 
      public void getOutline(View view, Outline outline) { 
       int fabSize = view.getHeight(); 
       //int fabSize = getResources().getDimensionPixelSize(R.dimen.fab_big); 
       outline.setOval(0, 0, fabSize, fabSize); 
      } 
     }; 
     fab.setOutlineProvider(outlineProvider); 
} 

그리고 내 공장을 배경으로 리플 및 56 *의 56dp 내부 이미지 SRC (더하기 기호)와 간단한하여 ImageButton입니다.

의견이 있으십니까?

편집은 : 몇 일 후에 내가 윤곽 제공자는 더 테스트가 몇 시간 앞으로 ... Button과하지 ImageButton을 위해 작동하는지 말할 것입니다. 당신의 getOutline 방법에

+0

가 쉽게 구현하는 간단한 라이브러리가있다; 내 대답을 확인하세요 : http://stackoverflow.com/a/27159634/1891118 –

답변

0

, 당신은 진정한 윤곽을 클립을 설정해야합니다

public void getOutline(View view, Outline outline) { 
    int fabSize = view.getHeight(); 
    outline.setOval(0, 0, fabSize, fabSize); 
    view.setClipToOutline(true); 
}