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