Update copy right notice
[0xbench:0xbench.git] / src / org / zeroxlab / graphics / DrawImageView.java
1 /*
2  * Copyright (C) 2010 0xlab - http://0xlab.org/
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package org.zeroxlab.graphics;
18
19 import org.zeroxlab.benchmark.R;
20
21 import android.content.Context;
22 import android.content.res.Resources;
23 import android.graphics.Bitmap;
24 import android.graphics.BitmapFactory;
25 import android.graphics.Canvas;
26 import android.graphics.Paint;
27 import android.graphics.RectF;
28 import android.graphics.Color;
29 import android.graphics.Bitmap;
30 import android.graphics.BitmapFactory;
31 import android.graphics.drawable.Drawable;
32 import android.os.Bundle;
33 import android.os.Handler;
34 import android.os.Message;
35 import android.util.AttributeSet;
36 import android.view.KeyEvent;
37 import android.view.SurfaceHolder;
38 import android.view.SurfaceView;
39 import android.view.View;
40 import android.widget.TextView;
41
42 import android.util.Log;
43
44 import java.util.ArrayList;
45 import java.util.Random;
46
47
48 class DrawImageView extends SurfaceView {
49
50     private SurfaceHolder mSurfaceHolder;
51     private int position[] = {0,0,0,0,0};
52     private boolean direction[] = {true,true,true,true,true};
53     private Bitmap mBitmap;
54     private Paint bgPaint;
55
56     protected void setImage(Bitmap bmp) {
57         mBitmap = bmp;
58     }
59
60     protected void doDraw() {
61         Canvas canvas = mSurfaceHolder.lockCanvas();
62         drawImage(canvas);
63         mSurfaceHolder.unlockCanvasAndPost(canvas);
64     }
65
66     private void drawImage(Canvas canvas) {
67         canvas.drawRect(0,0,getWidth(),getHeight(),bgPaint);
68
69         for(int x=0; x<5; x++) {
70             int speed = (x+1) * 2;
71
72             canvas.drawBitmap(mBitmap, (getWidth() - mBitmap.getWidth())/2, position[x], null);
73             if(direction[x]) {
74                 position[x] += speed;
75                 if (position[x] + mBitmap.getHeight() >= getHeight())
76                     direction[x] = !direction[x];
77             } else {
78                 position[x] -= speed;
79                 if (position[x] <= 0)
80                     direction[x] = !direction[x];
81             }
82
83         }
84     }
85
86     public DrawImageView(Context context, AttributeSet attrs) {
87         super(context, attrs);
88         mSurfaceHolder = getHolder();
89         bgPaint = new Paint();
90         bgPaint.setColor(Color.BLACK);
91         bgPaint.setStyle(Paint.Style.FILL);
92     }
93 }
94