1*90c8c64dSAndroid Build Coastguard Worker /*
2*90c8c64dSAndroid Build Coastguard Worker  * Copyright 2014 The Android Open Source Project
3*90c8c64dSAndroid Build Coastguard Worker  *
4*90c8c64dSAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
5*90c8c64dSAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
6*90c8c64dSAndroid Build Coastguard Worker  * You may obtain a copy of the License at
7*90c8c64dSAndroid Build Coastguard Worker  *
8*90c8c64dSAndroid Build Coastguard Worker  *     http://www.apache.org/licenses/LICENSE-2.0
9*90c8c64dSAndroid Build Coastguard Worker  *
10*90c8c64dSAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
11*90c8c64dSAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
12*90c8c64dSAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*90c8c64dSAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
14*90c8c64dSAndroid Build Coastguard Worker  * limitations under the License.
15*90c8c64dSAndroid Build Coastguard Worker  */
16*90c8c64dSAndroid Build Coastguard Worker package com.example.android.revealeffectbasic;
17*90c8c64dSAndroid Build Coastguard Worker 
18*90c8c64dSAndroid Build Coastguard Worker import com.example.android.common.logger.Log;
19*90c8c64dSAndroid Build Coastguard Worker 
20*90c8c64dSAndroid Build Coastguard Worker import android.animation.Animator;
21*90c8c64dSAndroid Build Coastguard Worker import android.animation.ValueAnimator;
22*90c8c64dSAndroid Build Coastguard Worker import android.support.v4.app.Fragment;
23*90c8c64dSAndroid Build Coastguard Worker import android.os.Bundle;
24*90c8c64dSAndroid Build Coastguard Worker import android.view.LayoutInflater;
25*90c8c64dSAndroid Build Coastguard Worker import android.view.MotionEvent;
26*90c8c64dSAndroid Build Coastguard Worker import android.view.View;
27*90c8c64dSAndroid Build Coastguard Worker import android.view.ViewAnimationUtils;
28*90c8c64dSAndroid Build Coastguard Worker import android.view.ViewGroup;
29*90c8c64dSAndroid Build Coastguard Worker import android.view.animation.AccelerateDecelerateInterpolator;
30*90c8c64dSAndroid Build Coastguard Worker 
31*90c8c64dSAndroid Build Coastguard Worker /**
32*90c8c64dSAndroid Build Coastguard Worker  * This sample shows a view that is revealed when a button is clicked.
33*90c8c64dSAndroid Build Coastguard Worker  */
34*90c8c64dSAndroid Build Coastguard Worker public class RevealEffectBasicFragment extends Fragment {
35*90c8c64dSAndroid Build Coastguard Worker 
36*90c8c64dSAndroid Build Coastguard Worker     private final static String TAG = "RevealEffectBasicFragment";
37*90c8c64dSAndroid Build Coastguard Worker 
38*90c8c64dSAndroid Build Coastguard Worker     @Override
onCreate(Bundle savedInstanceState)39*90c8c64dSAndroid Build Coastguard Worker     public void onCreate(Bundle savedInstanceState) {
40*90c8c64dSAndroid Build Coastguard Worker         super.onCreate(savedInstanceState);
41*90c8c64dSAndroid Build Coastguard Worker         setHasOptionsMenu(true);
42*90c8c64dSAndroid Build Coastguard Worker     }
43*90c8c64dSAndroid Build Coastguard Worker 
44*90c8c64dSAndroid Build Coastguard Worker     @Override
onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)45*90c8c64dSAndroid Build Coastguard Worker     public View onCreateView(LayoutInflater inflater, ViewGroup container,
46*90c8c64dSAndroid Build Coastguard Worker             Bundle savedInstanceState) {
47*90c8c64dSAndroid Build Coastguard Worker         final View rootView = inflater.inflate(R.layout.reveal_effect_basic, container, false);
48*90c8c64dSAndroid Build Coastguard Worker 
49*90c8c64dSAndroid Build Coastguard Worker         View button = rootView.findViewById(R.id.button);
50*90c8c64dSAndroid Build Coastguard Worker 
51*90c8c64dSAndroid Build Coastguard Worker         // Set a listener to reveal the view when clicked.
52*90c8c64dSAndroid Build Coastguard Worker         button.setOnClickListener(new View.OnClickListener() {
53*90c8c64dSAndroid Build Coastguard Worker             @Override
54*90c8c64dSAndroid Build Coastguard Worker             public void onClick(View view) {
55*90c8c64dSAndroid Build Coastguard Worker                 View shape = rootView.findViewById(R.id.circle);
56*90c8c64dSAndroid Build Coastguard Worker 
57*90c8c64dSAndroid Build Coastguard Worker                 // Create a reveal {@link Animator} that starts clipping the view from
58*90c8c64dSAndroid Build Coastguard Worker                 // the top left corner until the whole view is covered.
59*90c8c64dSAndroid Build Coastguard Worker                 Animator animator = ViewAnimationUtils.createCircularReveal(
60*90c8c64dSAndroid Build Coastguard Worker                         shape,
61*90c8c64dSAndroid Build Coastguard Worker                         0,
62*90c8c64dSAndroid Build Coastguard Worker                         0,
63*90c8c64dSAndroid Build Coastguard Worker                         0,
64*90c8c64dSAndroid Build Coastguard Worker                         (float) Math.hypot(shape.getWidth(), shape.getHeight()));
65*90c8c64dSAndroid Build Coastguard Worker 
66*90c8c64dSAndroid Build Coastguard Worker                 // Set a natural ease-in/ease-out interpolator.
67*90c8c64dSAndroid Build Coastguard Worker                 animator.setInterpolator(new AccelerateDecelerateInterpolator());
68*90c8c64dSAndroid Build Coastguard Worker 
69*90c8c64dSAndroid Build Coastguard Worker                 // Finally start the animation
70*90c8c64dSAndroid Build Coastguard Worker                 animator.start();
71*90c8c64dSAndroid Build Coastguard Worker 
72*90c8c64dSAndroid Build Coastguard Worker                 Log.d(TAG, "Starting Reveal animation");
73*90c8c64dSAndroid Build Coastguard Worker             }
74*90c8c64dSAndroid Build Coastguard Worker         });
75*90c8c64dSAndroid Build Coastguard Worker 
76*90c8c64dSAndroid Build Coastguard Worker         return rootView;
77*90c8c64dSAndroid Build Coastguard Worker     }
78*90c8c64dSAndroid Build Coastguard Worker 
79*90c8c64dSAndroid Build Coastguard Worker }