1fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki/*
2fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki * Copyright (C) 2017 The Android Open Source Project
3fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki *
4fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki * Licensed under the Apache License, Version 2.0 (the "License");
5fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki * you may not use this file except in compliance with the License.
6fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki * You may obtain a copy of the License at
7fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki *
8fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki *      http://www.apache.org/licenses/LICENSE-2.0
9fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki *
10fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki * Unless required by applicable law or agreed to in writing, software
11fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki * distributed under the License is distributed on an "AS IS" BASIS,
12fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki * See the License for the specific language governing permissions and
14fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki * limitations under the License.
15fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki */
16fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki
17fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Arakipackage com.example.android.support.transition.widget;
18fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki
19fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Arakiimport android.graphics.Matrix;
20fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Arakiimport android.os.Bundle;
21fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Arakiimport android.view.View;
22fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Arakiimport android.view.ViewGroup;
23fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Arakiimport android.widget.ImageView;
24fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki
25def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport androidx.transition.ChangeImageTransform;
26def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport androidx.transition.Transition;
27def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport androidx.transition.TransitionManager;
28def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikas
29fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Arakiimport com.example.android.support.transition.R;
30fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki
31fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki/**
32fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki * This demonstrates basic usage of the ChangeImageTransform Transition.
33fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki */
34fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Arakipublic class ChangeImageTransformUsage extends TransitionUsageBase {
35fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki
36fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki    private ViewGroup mRoot;
37fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki    private ImageView mPhoto;
38fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki
39fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki    private static final Transition TRANSITION = new ChangeImageTransform();
40fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki
41fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki    @Override
42fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki    int getLayoutResId() {
43fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki        return R.layout.image_transform;
44fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki    }
45fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki
46fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki    @Override
47fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki    protected void onCreate(Bundle savedInstanceState) {
48fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki        super.onCreate(savedInstanceState);
49fa2e2acf79d791a90410025daad438968550d18cAlan Viverette        mRoot = findViewById(R.id.container);
50fa2e2acf79d791a90410025daad438968550d18cAlan Viverette        mPhoto = findViewById(R.id.photo);
51fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki        final View.OnClickListener listener = new View.OnClickListener() {
52fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki            @Override
53fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki            public void onClick(View v) {
54fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki                TransitionManager.beginDelayedTransition(mRoot, TRANSITION);
55fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki                switch (v.getId()) {
56fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki                    case R.id.fit_xy:
57fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki                        mPhoto.setScaleType(ImageView.ScaleType.FIT_XY);
58fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki                        break;
59fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki                    case R.id.center:
60fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki                        mPhoto.setScaleType(ImageView.ScaleType.CENTER);
61fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki                        break;
62fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki                    case R.id.center_crop:
63fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki                        mPhoto.setScaleType(ImageView.ScaleType.CENTER_CROP);
64fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki                        break;
65fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki                    case R.id.fit_start:
66fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki                        mPhoto.setScaleType(ImageView.ScaleType.FIT_START);
67fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki                        break;
68fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki                    case R.id.fit_end:
69fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki                        mPhoto.setScaleType(ImageView.ScaleType.FIT_END);
70fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki                        break;
71fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki                    case R.id.matrix:
72fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki                        mPhoto.setScaleType(ImageView.ScaleType.MATRIX);
73fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki                        final Matrix matrix = new Matrix();
74fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki                        matrix.setRotate(45.f);
75fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki                        matrix.postTranslate(200, 10);
76fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki                        mPhoto.setImageMatrix(matrix);
77fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki                        break;
78fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki                }
79fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki            }
80fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki        };
81fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki        findViewById(R.id.fit_xy).setOnClickListener(listener);
82fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki        findViewById(R.id.center).setOnClickListener(listener);
83fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki        findViewById(R.id.center_crop).setOnClickListener(listener);
84fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki        findViewById(R.id.fit_start).setOnClickListener(listener);
85fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki        findViewById(R.id.fit_end).setOnClickListener(listener);
86fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki        findViewById(R.id.matrix).setOnClickListener(listener);
87fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki    }
88fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki
89fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki}
90