1e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy/*
2e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy * Copyright (C) 2010 The Android Open Source Project
3e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy *
4e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy * Licensed under the Apache License, Version 2.0 (the "License");
5e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy * you may not use this file except in compliance with the License.
6e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy * You may obtain a copy of the License at
7e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy *
8e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy *      http://www.apache.org/licenses/LICENSE-2.0
9e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy *
10e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy * Unless required by applicable law or agreed to in writing, software
11e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy * distributed under the License is distributed on an "AS IS" BASIS,
12e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy * See the License for the specific language governing permissions and
14e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy * limitations under the License.
15e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy */
16e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy
17e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guypackage com.android.test.hwui;
18e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy
19e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guyimport android.app.Activity;
20e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guyimport android.content.Context;
21e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guyimport android.graphics.Bitmap;
22e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guyimport android.graphics.BitmapFactory;
23e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guyimport android.graphics.Canvas;
24e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guyimport android.graphics.Matrix;
25e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guyimport android.graphics.Paint;
26e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guyimport android.os.Bundle;
27e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guyimport android.view.Gravity;
28e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guyimport android.view.View;
29e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guyimport android.widget.FrameLayout;
30e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy
31e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy@SuppressWarnings({"UnusedDeclaration"})
32e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guypublic class Bitmaps3dActivity extends Activity {
33e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy    @Override
34e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy    protected void onCreate(Bundle savedInstanceState) {
35e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy        super.onCreate(savedInstanceState);
36e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy        final BitmapsView view = new BitmapsView(this);
37e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy        final FrameLayout layout = new FrameLayout(this);
38e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy        layout.addView(view, new FrameLayout.LayoutParams(800, 400, Gravity.CENTER));
39e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy        view.setRotationX(-35.0f);
40e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy        setContentView(layout);
41e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy    }
42e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy
43e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy    static class BitmapsView extends View {
44e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy        private final Paint mBitmapPaint;
45e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy        private final Bitmap mBitmap1;
46e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy        private Matrix mMatrix;
47e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy
48e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy        BitmapsView(Context c) {
49e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy            super(c);
50e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy
51e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy            mBitmap1 = BitmapFactory.decodeResource(c.getResources(), R.drawable.sunset1);
52e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy            mBitmapPaint = new Paint();
53e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy
54e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy            mMatrix = new Matrix();
55e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy            mMatrix.setScale(2.0f, 2.0f);
56e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy            mMatrix.preTranslate(0.0f, -10.0f);
57e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy        }
58e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy
59e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy        @Override
60e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy        protected void onDraw(Canvas canvas) {
61e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy            super.onDraw(canvas);
62e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy
63e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy            canvas.drawColor(0xffffffff);
64e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy
65e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy            canvas.save();
66e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy            canvas.translate(120.0f, 50.0f);
67e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy
68e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy            canvas.concat(mMatrix);
69e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy            canvas.drawBitmap(mBitmap1, 0.0f, 0.0f, mBitmapPaint);
70e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy
71e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy            canvas.restore();
72e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy        }
73e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy    }
74e5ebcb0107a939395e03592fd44c746cd09e311dRomain Guy}
75