DashPathEffect.java revision e14e70a1b0bce377d90183e53c67688ce7067c0e
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2006 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.graphics; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class DashPathEffect extends PathEffect { 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The intervals array must contain an even number of entries (>=2), with 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the even indices specifying the "on" intervals, and the odd indices 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * specifying the "off" intervals. phase is an offset into the intervals 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * array (mod the sum of all of the intervals). The intervals array 26e14e70a1b0bce377d90183e53c67688ce7067c0eMike Reed * controls the length of the dashes. The paint's strokeWidth controls the 27e14e70a1b0bce377d90183e53c67688ce7067c0eMike Reed * thickness of the dashes. 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Note: this patheffect only affects drawing with the paint's style is set 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * to STROKE or STROKE_AND_FILL. It is ignored if the drawing is done with 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * style == FILL. 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param intervals array of ON and OFF distances 32e14e70a1b0bce377d90183e53c67688ce7067c0eMike Reed * @param phase offset into the intervals array 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public DashPathEffect(float intervals[], float phase) { 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (intervals.length < 2) { 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new ArrayIndexOutOfBoundsException(); 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project native_instance = nativeCreate(intervals, phase); 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static native int nativeCreate(float intervals[], float phase); 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 44