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