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