シャドウとクリッピング ビューの定義で述べたように
シャドウ キャスティングとクリッピングに使用される をビルドするViewOutlineProvider
抽象クラスを実装する必要があります。View
Outline
長方形の CustomView
public class CustomView extends View {
// ..
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
/// ..
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
setOutlineProvider(new CustomOutline(w, h));
}
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private class CustomOutline extends ViewOutlineProvider {
int width;
int height;
CustomOutline(int width, int height) {
this.width = width;
this.height = height;
}
@Override
public void getOutline(View view, Outline outline) {
outline.setRect(0, 0, width, height);
}
}
//...
}
注: この機能は API21 でのみサポートされています。API21 より前のバージョンでは 9-patch を使用する必要があります。