1713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy/*
2713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy * Copyright (C) 2010 The Android Open Source Project
3713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy *
4713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy * Licensed under the Apache License, Version 2.0 (the "License");
5713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy * you may not use this file except in compliance with the License.
6713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy * You may obtain a copy of the License at
7713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy *
8713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy *      http://www.apache.org/licenses/LICENSE-2.0
9713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy *
10713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy * Unless required by applicable law or agreed to in writing, software
11713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy * distributed under the License is distributed on an "AS IS" BASIS,
12713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy * See the License for the specific language governing permissions and
14713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy * limitations under the License.
15713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy */
16713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy
17713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guypackage com.android.test.hwui;
18713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy
19713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guyimport android.app.Activity;
20713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guyimport android.content.Context;
21713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guyimport android.graphics.Bitmap;
22713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guyimport android.graphics.BitmapFactory;
23713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guyimport android.graphics.Canvas;
24713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guyimport android.graphics.Paint;
25713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guyimport android.graphics.PorterDuff;
26713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guyimport android.graphics.PorterDuffXfermode;
27713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guyimport android.os.Bundle;
28713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guyimport android.util.Log;
29713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guyimport android.view.Gravity;
30713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guyimport android.view.View;
31713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guyimport android.view.animation.Animation;
32713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guyimport android.view.animation.ScaleAnimation;
33713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guyimport android.widget.FrameLayout;
34713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy
35713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy@SuppressWarnings({"UnusedDeclaration"})
36713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guypublic class MipMapActivity extends Activity {
37713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy    @Override
38713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy    protected void onCreate(Bundle savedInstanceState) {
39713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy        super.onCreate(savedInstanceState);
40713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy        final BitmapsView view = new BitmapsView(this);
41713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy        setContentView(view);
42713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy    }
43713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy
44713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy    static class BitmapsView extends View {
45713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy        private Paint mBitmapPaint;
46713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy        private final Bitmap mBitmap1;
47713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy        private final Bitmap mBitmap2;
48713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy
49713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy        BitmapsView(Context c) {
50713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy            super(c);
51713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy
52713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy            mBitmap1 = BitmapFactory.decodeResource(c.getResources(), R.drawable.very_large_photo);
53713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy            mBitmap2 = BitmapFactory.decodeResource(c.getResources(), R.drawable.very_large_photo);
54713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy
55713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy            mBitmap1.setHasMipMap(true);
56713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy
57713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy            mBitmapPaint = new Paint();
58713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy            mBitmapPaint.setFilterBitmap(true);
59713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy        }
60713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy
61713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy        @Override
62713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy        protected void onDraw(Canvas canvas) {
63713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy            super.onDraw(canvas);
64713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy
65713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy            canvas.save();
66713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy            canvas.scale(0.3f, 0.3f);
67713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy            canvas.drawBitmap(mBitmap1, 0, 0, mBitmapPaint);
68713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy            canvas.restore();
69713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy
70713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy            canvas.save();
71713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy            canvas.translate(mBitmap1.getWidth() * 0.3f + 96.0f, 0.0f);
72713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy            canvas.scale(0.3f, 0.3f);
73713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy            canvas.drawBitmap(mBitmap2, 0, 0, mBitmapPaint);
74713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy            canvas.restore();
75713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy        }
76713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy    }
77713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5Romain Guy}
78