19fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy/* 29fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy * Copyright (C) 2010 The Android Open Source Project 39fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy * 49fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy * Licensed under the Apache License, Version 2.0 (the "License"); 59fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy * you may not use this file except in compliance with the License. 69fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy * You may obtain a copy of the License at 79fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy * 89fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy * http://www.apache.org/licenses/LICENSE-2.0 99fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy * 109fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy * Unless required by applicable law or agreed to in writing, software 119fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy * distributed under the License is distributed on an "AS IS" BASIS, 129fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy * See the License for the specific language governing permissions and 149fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy * limitations under the License. 159fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy */ 169fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy 179fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guypackage com.android.test.hwui; 189fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy 199fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guyimport android.app.Activity; 209fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guyimport android.content.Context; 219fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guyimport android.graphics.Canvas; 229fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guyimport android.graphics.Color; 239fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guyimport android.graphics.Paint; 249fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guyimport android.graphics.Path; 259fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guyimport android.os.Bundle; 269fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guyimport android.view.MotionEvent; 279fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guyimport android.view.View; 289fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy 299fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy@SuppressWarnings({"UnusedDeclaration"}) 309fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guypublic class PathOffsetActivity extends Activity { 319fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy @Override 329fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy protected void onCreate(Bundle savedInstanceState) { 339fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy super.onCreate(savedInstanceState); 349fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy final PathsView view = new PathsView(this); 359fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy setContentView(view); 369fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy } 379fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy 389fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy public class PathsView extends View { 399fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy private Path mPath; 409fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy private Paint mPaint; 419fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy 429fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy public PathsView(Context context) { 439fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy super(context); 449fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy 459fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy mPaint = new Paint(); 469fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy mPaint.setStyle(Paint.Style.STROKE); 479fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy mPaint.setStrokeWidth(3); 489fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy 499fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy mPath = new Path(); 509fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy mPath.lineTo(100, 100); 519fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy mPath.lineTo(200, 300); 529fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy } 539fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy 549fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy @Override 559fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy protected void onDraw(Canvas canvas) { 569fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy mPath.offset(1, 1); 579fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy mPaint.setColor(Color.RED); 589fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy canvas.drawPath(mPath, mPaint); 599fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy } 609fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy 619fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy @Override 629fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy public boolean onTouchEvent(MotionEvent event) { 639fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy invalidate(); 649fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy return super.onTouchEvent(event); 659fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy } 669fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy } 679fc4b356a4552336f661bf4dfaaa19a251194cdbRomain Guy} 68