/* * Copyright (C) 2013 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.gallery3d.filtershow.imageshow; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.Paint.Style; import android.util.AttributeSet; import com.android.gallery3d.filtershow.editors.EditorRedEye; import com.android.gallery3d.filtershow.filters.FilterPoint; import com.android.gallery3d.filtershow.filters.FilterRedEyeRepresentation; import com.android.gallery3d.filtershow.filters.ImageFilterRedEye; public abstract class ImagePoint extends ImageShow { private static final String LOGTAG = "ImageRedEyes"; protected EditorRedEye mEditorRedEye; protected FilterRedEyeRepresentation mRedEyeRep; protected static float mTouchPadding = 80; public static void setTouchPadding(float padding) { mTouchPadding = padding; } public ImagePoint(Context context, AttributeSet attrs) { super(context, attrs); } public ImagePoint(Context context) { super(context); } @Override public void resetParameter() { ImageFilterRedEye filter = (ImageFilterRedEye) getCurrentFilter(); if (filter != null) { filter.clear(); } invalidate(); } @Override public void updateImage() { super.updateImage(); invalidate(); } @Override public void onDraw(Canvas canvas) { super.onDraw(canvas); Paint paint = new Paint(); paint.setStyle(Style.STROKE); paint.setColor(Color.RED); paint.setStrokeWidth(2); Matrix originalToScreen = getImageToScreenMatrix(false); Matrix originalRotateToScreen = getImageToScreenMatrix(true); if (mRedEyeRep != null) { for (FilterPoint candidate : mRedEyeRep.getCandidates()) { drawPoint(candidate, canvas, originalToScreen, originalRotateToScreen, paint); } } } protected abstract void drawPoint( FilterPoint candidate, Canvas canvas, Matrix originalToScreen, Matrix originalRotateToScreen, Paint paint); public void setEditor(EditorRedEye editorRedEye) { mEditorRedEye = editorRedEye; } public void setRepresentation(FilterRedEyeRepresentation redEyeRep) { mRedEyeRep = redEyeRep; } }