LinesActivity.java revision 759ea80dca64ad652110a129e0d8bf93fea79f61
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.Bitmap; 22import android.graphics.BitmapFactory; 23import android.graphics.BitmapShader; 24import android.graphics.Canvas; 25import android.graphics.Paint; 26import android.os.Bundle; 27import android.view.View; 28 29@SuppressWarnings({"UnusedDeclaration"}) 30public class LinesActivity extends Activity { 31 @Override 32 protected void onCreate(Bundle savedInstanceState) { 33 super.onCreate(savedInstanceState); 34 final LinesView view = new LinesView(this); 35 setContentView(view); 36 } 37 38 static class LinesView extends View { 39 private final Bitmap mBitmap1; 40 private final Paint mSmallPaint; 41 private final Paint mMediumPaint; 42 private final Paint mLargePaint; 43 private final BitmapShader mShader; 44 private final float[] mPoints; 45 private final Paint mAlphaPaint; 46 47 LinesView(Context c) { 48 super(c); 49 50 mBitmap1 = BitmapFactory.decodeResource(c.getResources(), R.drawable.sunset1); 51 52 mSmallPaint = new Paint(); 53 mSmallPaint.setAntiAlias(true); 54 mSmallPaint.setColor(0xffff0000); 55 mSmallPaint.setStrokeWidth(1.0f); 56 57 mMediumPaint = new Paint(); 58 mMediumPaint.setAntiAlias(true); 59 mMediumPaint.setColor(0xff0000ff); 60 mMediumPaint.setStrokeWidth(4.0f); 61 62 mLargePaint = new Paint(); 63 mLargePaint.setAntiAlias(true); 64 mLargePaint.setColor(0xff00ff00); 65 mLargePaint.setStrokeWidth(15.0f); 66 67 mAlphaPaint = new Paint(); 68 mAlphaPaint.setAntiAlias(true); 69 mAlphaPaint.setColor(0x7fff0050); 70 mAlphaPaint.setStrokeWidth(10.0f); 71 72 mShader = new BitmapShader(mBitmap1, BitmapShader.TileMode.MIRROR, 73 BitmapShader.TileMode.MIRROR); 74 75 mPoints = new float[] { 76 62.0f, 0.0f, 302.0f, 400.0f, 77 302.0f, 400.0f, 352.0f, 400.0f, 78 352.0f, 400.0f, 352.0f, 500.0f 79 }; 80 } 81 82 @Override 83 protected void onDraw(Canvas canvas) { 84 super.onDraw(canvas); 85 86 canvas.drawARGB(255, 255, 255, 255); 87 88 canvas.save(); 89 canvas.translate(100.0f, 20.0f); 90 91 canvas.drawLine(0.0f, 0.0f, 40.0f, 400.0f, mSmallPaint); 92 canvas.drawLine(5.0f, 0.0f, 95.0f, 400.0f, mMediumPaint); 93 canvas.drawLine(22.0f, 0.0f, 162.0f, 400.0f, mLargePaint); 94 95 mLargePaint.setShader(mShader); 96 canvas.drawLine(42.0f, 0.0f, 222.0f, 400.0f, mLargePaint); 97 mLargePaint.setShader(null); 98 99 canvas.drawLines(mPoints, mAlphaPaint); 100 101 mSmallPaint.setAntiAlias(false); 102 canvas.drawLine(0.0f, 0.0f, 400.0f, 0.0f, mSmallPaint); 103 mSmallPaint.setAntiAlias(true); 104 105 canvas.translate(120.0f, 0.0f); 106 mAlphaPaint.setShader(mShader); 107 canvas.drawLines(mPoints, mAlphaPaint); 108 mAlphaPaint.setShader(null); 109 110 canvas.restore(); 111 } 112 } 113} 114