/*
* Copyright (C) 2010 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.test.hwui;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.RectF;
import android.os.Bundle;
import android.view.View;
@SuppressWarnings({"UnusedDeclaration"})
public class ShapesActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new ShapesView(this));
}
static class ShapesView extends View {
private final Paint mNormalPaint;
private final Paint mStrokePaint;
private final Paint mFillPaint;
private final RectF mRect;
private final RectF mOval;
private final RectF mArc;
private final Path mTriangle;
ShapesView(Context c) {
super(c);
mRect = new RectF(0.0f, 0.0f, 160.0f, 90.0f);
mNormalPaint = new Paint();
mNormalPaint.setAntiAlias(true);
mNormalPaint.setColor(0xff0000ff);
mNormalPaint.setStrokeWidth(6.0f);
mNormalPaint.setStyle(Paint.Style.FILL_AND_STROKE);
mStrokePaint = new Paint();
mStrokePaint.setAntiAlias(true);
mStrokePaint.setColor(0xff0000ff);
mStrokePaint.setStrokeWidth(6.0f);
mStrokePaint.setStyle(Paint.Style.STROKE);
mFillPaint = new Paint();
mFillPaint.setAntiAlias(true);
mFillPaint.setColor(0xff0000ff);
mFillPaint.setStyle(Paint.Style.FILL);
mOval = new RectF(0.0f, 0.0f, 80.0f, 45.0f);
mArc = new RectF(0.0f, 0.0f, 100.0f, 120.0f);
mTriangle = new Path();
mTriangle.moveTo(0.0f, 90.0f);
mTriangle.lineTo(45.0f, 0.0f);
mTriangle.lineTo(90.0f, 90.0f);
mTriangle.close();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.save();
canvas.translate(50.0f, 50.0f);
canvas.drawRoundRect(mRect, 6.0f, 6.0f, mNormalPaint);
canvas.translate(0.0f, 110.0f);
canvas.drawRoundRect(mRect, 6.0f, 6.0f, mStrokePaint);
canvas.translate(0.0f, 110.0f);
canvas.drawRoundRect(mRect, 6.0f, 6.0f, mFillPaint);
canvas.restore();
canvas.save();
canvas.translate(250.0f, 50.0f);
canvas.drawCircle(80.0f, 45.0f, 45.0f, mNormalPaint);
canvas.translate(0.0f, 110.0f);
canvas.drawCircle(80.0f, 45.0f, 45.0f, mStrokePaint);
canvas.translate(0.0f, 110.0f);
canvas.drawCircle(80.0f, 45.0f, 45.0f, mFillPaint);
canvas.restore();
canvas.save();
canvas.translate(450.0f, 50.0f);
canvas.drawOval(mOval, mNormalPaint);
canvas.translate(0.0f, 110.0f);
canvas.drawOval(mOval, mStrokePaint);
canvas.translate(0.0f, 110.0f);
canvas.drawOval(mOval, mFillPaint);
canvas.restore();
canvas.save();
canvas.translate(625.0f, 50.0f);
canvas.drawRect(0.0f, 0.0f, 160.0f, 90.0f, mNormalPaint);
canvas.translate(0.0f, 110.0f);
canvas.drawRect(0.0f, 0.0f, 160.0f, 90.0f, mStrokePaint);
canvas.translate(0.0f, 110.0f);
canvas.drawRect(0.0f, 0.0f, 160.0f, 90.0f, mFillPaint);
canvas.restore();
canvas.save();
canvas.translate(825.0f, 50.0f);
canvas.drawArc(mArc, -30.0f, 70.0f, true, mNormalPaint);
canvas.translate(0.0f, 110.0f);
canvas.drawArc(mArc, -30.0f, 70.0f, true, mStrokePaint);
canvas.translate(0.0f, 110.0f);
canvas.drawArc(mArc, -30.0f, 70.0f, true, mFillPaint);
canvas.restore();
canvas.save();
canvas.translate(950.0f, 50.0f);
canvas.drawArc(mArc, 30.0f, 100.0f, false, mNormalPaint);
canvas.translate(0.0f, 110.0f);
canvas.drawArc(mArc, 30.0f, 100.0f, false, mStrokePaint);
canvas.translate(0.0f, 110.0f);
canvas.drawArc(mArc, 30.0f, 100.0f, false, mFillPaint);
canvas.restore();
canvas.save();
canvas.translate(50.0f, 400.0f);
canvas.drawPath(mTriangle, mNormalPaint);
canvas.translate(110.0f, 0.0f);
canvas.drawPath(mTriangle, mStrokePaint);
canvas.translate(110.0f, 0.0f);
canvas.drawPath(mTriangle, mFillPaint);
canvas.restore();
}
}
}
|