14dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui/*
24dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui * Copyright (C) 2014 The Android Open Source Project
34dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui *
44dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui * Licensed under the Apache License, Version 2.0 (the "License");
54dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui * you may not use this file except in compliance with the License.
64dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui * You may obtain a copy of the License at
74dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui *
84dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui *      http://www.apache.org/licenses/LICENSE-2.0
94dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui *
104dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui * Unless required by applicable law or agreed to in writing, software
114dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui * distributed under the License is distributed on an "AS IS" BASIS,
124dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
134dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui * See the License for the specific language governing permissions and
144dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui * limitations under the License.
154dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui */
164dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui
174dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghuipackage android.animation;
184dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui
19d3de42cae84fadfa1befd082a2cf1bf72f9ad82aJohn Reckimport android.view.RenderNodeAnimator;
204dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghuiimport android.view.View;
214dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui
224dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui/**
234dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui * Reveals a View with an animated clipping circle.
244dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui * The clipping is implemented efficiently by talking to a private reveal API on View.
254dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui * This hidden class currently only accessed by the {@link android.view.View}.
264dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui *
274dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui * @hide
284dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui */
29291161ac3815fb853fd6af21055d60f57a869608John Reckpublic class RevealAnimator extends RenderNodeAnimator {
30d3de42cae84fadfa1befd082a2cf1bf72f9ad82aJohn Reck
31d3de42cae84fadfa1befd082a2cf1bf72f9ad82aJohn Reck    private View mClipView;
32d3de42cae84fadfa1befd082a2cf1bf72f9ad82aJohn Reck
33d3de42cae84fadfa1befd082a2cf1bf72f9ad82aJohn Reck    public RevealAnimator(View clipView, int x, int y,
34af4d04cab6d48ae0d6a5e79bd30f679af87abaadChris Craik            float startRadius, float endRadius) {
35291161ac3815fb853fd6af21055d60f57a869608John Reck        super(x, y, startRadius, endRadius);
36d3de42cae84fadfa1befd082a2cf1bf72f9ad82aJohn Reck        mClipView = clipView;
37291161ac3815fb853fd6af21055d60f57a869608John Reck        setTarget(mClipView);
384dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui    }
394dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui
404dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui    @Override
41291161ac3815fb853fd6af21055d60f57a869608John Reck    protected void onFinished() {
42af4d04cab6d48ae0d6a5e79bd30f679af87abaadChris Craik        mClipView.setRevealClip(false, 0, 0, 0);
43291161ac3815fb853fd6af21055d60f57a869608John Reck        super.onFinished();
444dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui    }
454dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui
464dc16b370ca633d6937c8e0ebf9f5aca46baa9a4ztenghui}
47