101d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy/*
201d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy * Copyright (C) 2010 The Android Open Source Project
301d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy *
401d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy * Licensed under the Apache License, Version 2.0 (the "License");
501d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy * you may not use this file except in compliance with the License.
601d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy * You may obtain a copy of the License at
701d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy *
801d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy *      http://www.apache.org/licenses/LICENSE-2.0
901d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy *
1001d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy * Unless required by applicable law or agreed to in writing, software
1101d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy * distributed under the License is distributed on an "AS IS" BASIS,
1201d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1301d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy * See the License for the specific language governing permissions and
1401d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy * limitations under the License.
1501d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy */
1601d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy
1701d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guypackage com.android.test.hwui;
1801d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy
1901d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guyimport android.app.Activity;
2001d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guyimport android.content.Context;
2101d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guyimport android.graphics.Canvas;
2201d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guyimport android.graphics.Paint;
2301d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guyimport android.graphics.RectF;
2401d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guyimport android.os.Bundle;
2501d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guyimport android.view.View;
2601d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy
2701d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy@SuppressWarnings({"UnusedDeclaration"})
2801d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guypublic class ShapesActivity extends Activity {
2901d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy    @Override
3001d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy    protected void onCreate(Bundle savedInstanceState) {
3101d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy        super.onCreate(savedInstanceState);
3201d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy
3301d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy        setContentView(new ShapesView(this));
3401d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy    }
3501d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy
3601d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy    static class ShapesView extends View {
3701d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy        private Paint mNormalPaint;
3801d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy        private Paint mStrokePaint;
3901d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy        private Paint mFillPaint;
4001d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy        private RectF mRect;
41c1cd9ba335b293f11e1082447ef08e474710a05fRomain Guy        private RectF mOval;
428b2f5267f16c295f12faab810527cd6311997e34Romain Guy        private RectF mArc;
4301d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy
4401d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy        ShapesView(Context c) {
4501d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            super(c);
4601d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy
4701d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            mRect = new RectF(0.0f, 0.0f, 160.0f, 90.0f);
4801d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy
4901d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            mNormalPaint = new Paint();
5001d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            mNormalPaint.setAntiAlias(true);
5101d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            mNormalPaint.setColor(0xff0000ff);
5201d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            mNormalPaint.setStrokeWidth(6.0f);
5301d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            mNormalPaint.setStyle(Paint.Style.FILL_AND_STROKE);
5401d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy
5501d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            mStrokePaint = new Paint();
5601d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            mStrokePaint.setAntiAlias(true);
5701d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            mStrokePaint.setColor(0xff0000ff);
5801d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            mStrokePaint.setStrokeWidth(6.0f);
5901d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            mStrokePaint.setStyle(Paint.Style.STROKE);
6001d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy
6101d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            mFillPaint = new Paint();
6201d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            mFillPaint.setAntiAlias(true);
6301d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            mFillPaint.setColor(0xff0000ff);
6401d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            mFillPaint.setStyle(Paint.Style.FILL);
65c1cd9ba335b293f11e1082447ef08e474710a05fRomain Guy
66c1cd9ba335b293f11e1082447ef08e474710a05fRomain Guy            mOval = new RectF(0.0f, 0.0f, 80.0f, 45.0f);
678b2f5267f16c295f12faab810527cd6311997e34Romain Guy            mArc = new RectF(0.0f, 0.0f, 100.0f, 120.0f);
6801d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy        }
6901d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy
7001d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy        @Override
7101d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy        protected void onDraw(Canvas canvas) {
7201d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            super.onDraw(canvas);
7301d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy
7401d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            canvas.save();
7501d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            canvas.translate(50.0f, 50.0f);
7601d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            canvas.drawRoundRect(mRect, 6.0f, 6.0f, mNormalPaint);
7701d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy
7801d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            canvas.translate(0.0f, 110.0f);
7901d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            canvas.drawRoundRect(mRect, 6.0f, 6.0f, mStrokePaint);
8001d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy
8101d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            canvas.translate(0.0f, 110.0f);
8201d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            canvas.drawRoundRect(mRect, 6.0f, 6.0f, mFillPaint);
8301d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            canvas.restore();
8401d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy
8501d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            canvas.save();
8601d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            canvas.translate(250.0f, 50.0f);
8701d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            canvas.drawCircle(80.0f, 45.0f, 45.0f, mNormalPaint);
8801d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy
8901d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            canvas.translate(0.0f, 110.0f);
9001d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            canvas.drawCircle(80.0f, 45.0f, 45.0f, mStrokePaint);
9101d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy
9201d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            canvas.translate(0.0f, 110.0f);
9301d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            canvas.drawCircle(80.0f, 45.0f, 45.0f, mFillPaint);
9401d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy            canvas.restore();
95c1cd9ba335b293f11e1082447ef08e474710a05fRomain Guy
96c1cd9ba335b293f11e1082447ef08e474710a05fRomain Guy            canvas.save();
97c1cd9ba335b293f11e1082447ef08e474710a05fRomain Guy            canvas.translate(450.0f, 50.0f);
98c1cd9ba335b293f11e1082447ef08e474710a05fRomain Guy            canvas.drawOval(mOval, mNormalPaint);
99c1cd9ba335b293f11e1082447ef08e474710a05fRomain Guy
100c1cd9ba335b293f11e1082447ef08e474710a05fRomain Guy            canvas.translate(0.0f, 110.0f);
101c1cd9ba335b293f11e1082447ef08e474710a05fRomain Guy            canvas.drawOval(mOval, mStrokePaint);
102c1cd9ba335b293f11e1082447ef08e474710a05fRomain Guy
103c1cd9ba335b293f11e1082447ef08e474710a05fRomain Guy            canvas.translate(0.0f, 110.0f);
104c1cd9ba335b293f11e1082447ef08e474710a05fRomain Guy            canvas.drawOval(mOval, mFillPaint);
105c1cd9ba335b293f11e1082447ef08e474710a05fRomain Guy            canvas.restore();
106c1cd9ba335b293f11e1082447ef08e474710a05fRomain Guy
107c1cd9ba335b293f11e1082447ef08e474710a05fRomain Guy            canvas.save();
1088b2f5267f16c295f12faab810527cd6311997e34Romain Guy            canvas.translate(625.0f, 50.0f);
109c1cd9ba335b293f11e1082447ef08e474710a05fRomain Guy            canvas.drawRect(0.0f, 0.0f, 160.0f, 90.0f, mNormalPaint);
110c1cd9ba335b293f11e1082447ef08e474710a05fRomain Guy
111c1cd9ba335b293f11e1082447ef08e474710a05fRomain Guy            canvas.translate(0.0f, 110.0f);
112c1cd9ba335b293f11e1082447ef08e474710a05fRomain Guy            canvas.drawRect(0.0f, 0.0f, 160.0f, 90.0f, mStrokePaint);
113c1cd9ba335b293f11e1082447ef08e474710a05fRomain Guy
114c1cd9ba335b293f11e1082447ef08e474710a05fRomain Guy            canvas.translate(0.0f, 110.0f);
115c1cd9ba335b293f11e1082447ef08e474710a05fRomain Guy            canvas.drawRect(0.0f, 0.0f, 160.0f, 90.0f, mFillPaint);
116c1cd9ba335b293f11e1082447ef08e474710a05fRomain Guy            canvas.restore();
1178b2f5267f16c295f12faab810527cd6311997e34Romain Guy
1188b2f5267f16c295f12faab810527cd6311997e34Romain Guy            canvas.save();
1198b2f5267f16c295f12faab810527cd6311997e34Romain Guy            canvas.translate(825.0f, 50.0f);
1208b2f5267f16c295f12faab810527cd6311997e34Romain Guy            canvas.drawArc(mArc, -30.0f, 70.0f, true, mNormalPaint);
1218b2f5267f16c295f12faab810527cd6311997e34Romain Guy
1228b2f5267f16c295f12faab810527cd6311997e34Romain Guy            canvas.translate(0.0f, 110.0f);
1238b2f5267f16c295f12faab810527cd6311997e34Romain Guy            canvas.drawArc(mArc, -30.0f, 70.0f, true, mStrokePaint);
1248b2f5267f16c295f12faab810527cd6311997e34Romain Guy
1258b2f5267f16c295f12faab810527cd6311997e34Romain Guy            canvas.translate(0.0f, 110.0f);
1268b2f5267f16c295f12faab810527cd6311997e34Romain Guy            canvas.drawArc(mArc, -30.0f, 70.0f, true, mFillPaint);
1278b2f5267f16c295f12faab810527cd6311997e34Romain Guy            canvas.restore();
1288b2f5267f16c295f12faab810527cd6311997e34Romain Guy
1298b2f5267f16c295f12faab810527cd6311997e34Romain Guy            canvas.save();
1308b2f5267f16c295f12faab810527cd6311997e34Romain Guy            canvas.translate(950.0f, 50.0f);
1318b2f5267f16c295f12faab810527cd6311997e34Romain Guy            canvas.drawArc(mArc, 30.0f, 100.0f, false, mNormalPaint);
1328b2f5267f16c295f12faab810527cd6311997e34Romain Guy
1338b2f5267f16c295f12faab810527cd6311997e34Romain Guy            canvas.translate(0.0f, 110.0f);
1348b2f5267f16c295f12faab810527cd6311997e34Romain Guy            canvas.drawArc(mArc, 30.0f, 100.0f, false, mStrokePaint);
1358b2f5267f16c295f12faab810527cd6311997e34Romain Guy
1368b2f5267f16c295f12faab810527cd6311997e34Romain Guy            canvas.translate(0.0f, 110.0f);
1378b2f5267f16c295f12faab810527cd6311997e34Romain Guy            canvas.drawArc(mArc, 30.0f, 100.0f, false, mFillPaint);
1388b2f5267f16c295f12faab810527cd6311997e34Romain Guy            canvas.restore();
13901d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy        }
14001d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy    }
14101d58e43ede5ca98cbebdd166f9b0c545032c01bRomain Guy}
142