LinesActivity.java revision 63fd87113cea6abec97a6cd966e090e9b590fc3b
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 public static class LinesView extends View { 39 private static final boolean LINE_AA = false; 40 41 private final Bitmap mBitmap1; 42 private final Paint mSmallPaint; 43 private final Paint mMediumPaint; 44 private final Paint mLargePaint; 45 private final BitmapShader mShader; 46 private final float[] mPoints; 47 private final Paint mAlphaPaint; 48 private final Paint mHairLinePaint; 49 50 public LinesView(Context c) { 51 super(c); 52 53 mBitmap1 = BitmapFactory.decodeResource(c.getResources(), R.drawable.sunset1); 54 55 mSmallPaint = new Paint(); 56 mSmallPaint.setAntiAlias(LINE_AA); 57 mSmallPaint.setColor(0xffff0000); 58 mSmallPaint.setStrokeWidth(1.0f); 59 60 mMediumPaint = new Paint(); 61 mMediumPaint.setAntiAlias(LINE_AA); 62 mMediumPaint.setColor(0xff0000ff); 63 mMediumPaint.setStrokeWidth(4.0f); 64 65 mLargePaint = new Paint(); 66 mLargePaint.setAntiAlias(LINE_AA); 67 mLargePaint.setColor(0xff00ff00); 68 mLargePaint.setStrokeWidth(15.0f); 69 70 mAlphaPaint = new Paint(); 71 mAlphaPaint.setAntiAlias(LINE_AA); 72 mAlphaPaint.setColor(0x7fff0050); 73 mAlphaPaint.setStrokeWidth(10.0f); 74 75 mHairLinePaint = new Paint(); 76 mHairLinePaint.setAntiAlias(LINE_AA); 77 mHairLinePaint.setColor(0xff0000ff); 78 mHairLinePaint.setStrokeWidth(0.0f); 79 80 mShader = new BitmapShader(mBitmap1, BitmapShader.TileMode.MIRROR, 81 BitmapShader.TileMode.MIRROR); 82 83 mPoints = new float[] { 84 62.0f, 0.0f, 302.0f, 400.0f, 85 302.0f, 400.0f, 352.0f, 400.0f, 86 352.0f, 400.0f, 352.0f, 500.0f 87 }; 88 } 89 90 @Override 91 protected void onDraw(Canvas canvas) { 92 super.onDraw(canvas); 93 94 canvas.drawARGB(255, 255, 255, 255); 95 96 canvas.save(); 97 canvas.translate(100.0f, 20.0f); 98 99 canvas.drawLine(0.0f, 0.0f, 40.0f, 400.0f, mSmallPaint); 100 canvas.drawLine(5.0f, 0.0f, 95.0f, 400.0f, mMediumPaint); 101 canvas.drawLine(22.0f, 0.0f, 162.0f, 400.0f, mLargePaint); 102 103 mLargePaint.setShader(mShader); 104 canvas.drawLine(42.0f, 0.0f, 222.0f, 400.0f, mLargePaint); 105 mLargePaint.setShader(null); 106 107 canvas.drawLines(mPoints, mAlphaPaint); 108 109 mSmallPaint.setAntiAlias(false); 110 canvas.drawLine(0.0f, 0.0f, 400.0f, 0.0f, mSmallPaint); 111 mSmallPaint.setAntiAlias(LINE_AA); 112 canvas.drawLine(0.0f, 0.0f, 0.0f, 400.0f, mSmallPaint); 113 canvas.drawLine(0.0f, 400.0f, 400.0f, 400.0f, mSmallPaint); 114 115 canvas.translate(120.0f, 0.0f); 116 mAlphaPaint.setShader(mShader); 117 canvas.drawLines(mPoints, mAlphaPaint); 118 mAlphaPaint.setShader(null); 119 120 canvas.restore(); 121 122 canvas.scale(10.0f, 10.0f); 123 canvas.drawLine(50.0f, 40.0f, 10.0f, 40.0f, mSmallPaint); 124 canvas.drawLine(10.0f, 50.0f, 50.0f, 50.0f, mSmallPaint); 125 canvas.drawLine(10.0f, 60.0f, 50.0f, 60.0f, mHairLinePaint); 126 canvas.restore(); 127 } 128 } 129} 130