1/* 2 * Copyright (C) 2010 The Android Open Source Project 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 17package com.android.test.hwui; 18 19import android.app.Activity; 20import android.content.Context; 21import android.graphics.Canvas; 22import android.graphics.Paint; 23import android.graphics.RectF; 24import android.os.Bundle; 25import android.view.View; 26 27@SuppressWarnings({"UnusedDeclaration"}) 28public class ShapesActivity extends Activity { 29 @Override 30 protected void onCreate(Bundle savedInstanceState) { 31 super.onCreate(savedInstanceState); 32 33 setContentView(new ShapesView(this)); 34 } 35 36 static class ShapesView extends View { 37 private Paint mNormalPaint; 38 private Paint mStrokePaint; 39 private Paint mFillPaint; 40 private RectF mRect; 41 private RectF mOval; 42 private RectF mArc; 43 44 ShapesView(Context c) { 45 super(c); 46 47 mRect = new RectF(0.0f, 0.0f, 160.0f, 90.0f); 48 49 mNormalPaint = new Paint(); 50 mNormalPaint.setAntiAlias(true); 51 mNormalPaint.setColor(0xff0000ff); 52 mNormalPaint.setStrokeWidth(6.0f); 53 mNormalPaint.setStyle(Paint.Style.FILL_AND_STROKE); 54 55 mStrokePaint = new Paint(); 56 mStrokePaint.setAntiAlias(true); 57 mStrokePaint.setColor(0xff0000ff); 58 mStrokePaint.setStrokeWidth(6.0f); 59 mStrokePaint.setStyle(Paint.Style.STROKE); 60 61 mFillPaint = new Paint(); 62 mFillPaint.setAntiAlias(true); 63 mFillPaint.setColor(0xff0000ff); 64 mFillPaint.setStyle(Paint.Style.FILL); 65 66 mOval = new RectF(0.0f, 0.0f, 80.0f, 45.0f); 67 mArc = new RectF(0.0f, 0.0f, 100.0f, 120.0f); 68 } 69 70 @Override 71 protected void onDraw(Canvas canvas) { 72 super.onDraw(canvas); 73 74 canvas.save(); 75 canvas.translate(50.0f, 50.0f); 76 canvas.drawRoundRect(mRect, 6.0f, 6.0f, mNormalPaint); 77 78 canvas.translate(0.0f, 110.0f); 79 canvas.drawRoundRect(mRect, 6.0f, 6.0f, mStrokePaint); 80 81 canvas.translate(0.0f, 110.0f); 82 canvas.drawRoundRect(mRect, 6.0f, 6.0f, mFillPaint); 83 canvas.restore(); 84 85 canvas.save(); 86 canvas.translate(250.0f, 50.0f); 87 canvas.drawCircle(80.0f, 45.0f, 45.0f, mNormalPaint); 88 89 canvas.translate(0.0f, 110.0f); 90 canvas.drawCircle(80.0f, 45.0f, 45.0f, mStrokePaint); 91 92 canvas.translate(0.0f, 110.0f); 93 canvas.drawCircle(80.0f, 45.0f, 45.0f, mFillPaint); 94 canvas.restore(); 95 96 canvas.save(); 97 canvas.translate(450.0f, 50.0f); 98 canvas.drawOval(mOval, mNormalPaint); 99 100 canvas.translate(0.0f, 110.0f); 101 canvas.drawOval(mOval, mStrokePaint); 102 103 canvas.translate(0.0f, 110.0f); 104 canvas.drawOval(mOval, mFillPaint); 105 canvas.restore(); 106 107 canvas.save(); 108 canvas.translate(625.0f, 50.0f); 109 canvas.drawRect(0.0f, 0.0f, 160.0f, 90.0f, mNormalPaint); 110 111 canvas.translate(0.0f, 110.0f); 112 canvas.drawRect(0.0f, 0.0f, 160.0f, 90.0f, mStrokePaint); 113 114 canvas.translate(0.0f, 110.0f); 115 canvas.drawRect(0.0f, 0.0f, 160.0f, 90.0f, mFillPaint); 116 canvas.restore(); 117 118 canvas.save(); 119 canvas.translate(825.0f, 50.0f); 120 canvas.drawArc(mArc, -30.0f, 70.0f, true, mNormalPaint); 121 122 canvas.translate(0.0f, 110.0f); 123 canvas.drawArc(mArc, -30.0f, 70.0f, true, mStrokePaint); 124 125 canvas.translate(0.0f, 110.0f); 126 canvas.drawArc(mArc, -30.0f, 70.0f, true, mFillPaint); 127 canvas.restore(); 128 129 canvas.save(); 130 canvas.translate(950.0f, 50.0f); 131 canvas.drawArc(mArc, 30.0f, 100.0f, false, mNormalPaint); 132 133 canvas.translate(0.0f, 110.0f); 134 canvas.drawArc(mArc, 30.0f, 100.0f, false, mStrokePaint); 135 136 canvas.translate(0.0f, 110.0f); 137 canvas.drawArc(mArc, 30.0f, 100.0f, false, mFillPaint); 138 canvas.restore(); 139 } 140 } 141} 142