Commit 116fc29a authored by nicolasroard's avatar nicolasroard
Browse files

More refactoring. Makes it easy to specify

how the button should look like (overlay img or not).

bug:7688780
Change-Id: If883c6886ade409dac7d72c87a514bd3fcd3ad7f
parent 8cc3b55d
......@@ -60,6 +60,7 @@ import com.android.gallery3d.filtershow.filters.ImageFilter;
import com.android.gallery3d.filtershow.filters.ImageFilterBorder;
import com.android.gallery3d.filtershow.filters.ImageFilterBwFilter;
import com.android.gallery3d.filtershow.filters.ImageFilterContrast;
import com.android.gallery3d.filtershow.filters.ImageFilterCurves;
import com.android.gallery3d.filtershow.filters.ImageFilterExposure;
import com.android.gallery3d.filtershow.filters.ImageFilterFx;
import com.android.gallery3d.filtershow.filters.ImageFilterHue;
......@@ -82,7 +83,6 @@ import com.android.gallery3d.filtershow.imageshow.ImageSmallBorder;
import com.android.gallery3d.filtershow.imageshow.ImageSmallFilter;
import com.android.gallery3d.filtershow.imageshow.ImageStraighten;
import com.android.gallery3d.filtershow.imageshow.ImageTinyPlanet;
import com.android.gallery3d.filtershow.imageshow.ImageWithIcon;
import com.android.gallery3d.filtershow.imageshow.ImageZoom;
import com.android.gallery3d.filtershow.presets.ImagePreset;
import com.android.gallery3d.filtershow.provider.SharedImageProvider;
......@@ -303,9 +303,8 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
new ImageFilterContrast(),
new ImageFilterShadows(),
new ImageFilterVibrance(),
// TODO: move sharpen and curves here
// sharpen
// curves
new ImageFilterSharpen(),
new ImageFilterCurves(),
new ImageFilterHue(),
new ImageFilterSaturated(),
new ImageFilterBwFilter()
......@@ -319,47 +318,15 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
fView.setController(this);
fView.setImageLoader(mImageLoader);
fView.setId(filters[i].getButtonId());
if (filters[i].getOverlayBitmaps() != 0) {
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
filters[i].getOverlayBitmaps());
fView.setOverlayBitmap(bitmap);
}
mPanelController.addComponent(mColorsButton, fView);
listColors.addView(fView);
}
int[] overlayIDs = {
R.id.sharpenButton,
R.id.curvesButtonRGB
};
int[] overlayBitmaps = {
R.drawable.filtershow_button_colors_sharpen,
R.drawable.filtershow_button_colors_curve
};
int[] overlayNames = {
R.string.sharpness,
R.string.curvesRGB
};
for (int i = 0; i < overlayIDs.length; i++) {
ImageWithIcon fView = new ImageWithIcon(this);
View v = listColors.findViewById(overlayIDs[i]);
int pos = listColors.indexOfChild(v);
listColors.removeView(v);
final int sid = overlayNames[i];
ImageFilterExposure efilter = new ImageFilterExposure() {
{
mName = getString(sid);
}
};
efilter.setParameter(-300);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
overlayBitmaps[i]);
fView.setIcon(bitmap);
fView.setImageFilter(efilter);
fView.setController(this);
fView.setImageLoader(mImageLoader);
fView.setId(overlayIDs[i]);
mPanelController.addComponent(mColorsButton, fView);
listColors.addView(fView, pos);
}
mPanelController.addView(findViewById(R.id.applyEffect));
mPanelController.addView(findViewById(R.id.pickCurvesChannel));
mPanelController.addView(findViewById(R.id.aspect));
......
......@@ -18,6 +18,7 @@ package com.android.gallery3d.filtershow.filters;
import android.graphics.Bitmap;
import com.android.gallery3d.R;
import com.android.gallery3d.filtershow.ui.Spline;
public class ImageFilterCurves extends ImageFilter {
......@@ -30,6 +31,21 @@ public class ImageFilterCurves extends ImageFilter {
reset();
}
@Override
public int getButtonId() {
return R.id.curvesButtonRGB;
}
@Override
public int getTextId() {
return R.string.curvesRGB;
}
@Override
public int getOverlayBitmaps() {
return R.drawable.filtershow_button_colors_curve;
}
@Override
public ImageFilter clone() throws CloneNotSupportedException {
ImageFilterCurves filter = (ImageFilterCurves) super.clone();
......
......@@ -32,6 +32,16 @@ public class ImageFilterSharpen extends ImageFilterRS {
return R.id.sharpenButton;
}
@Override
public int getTextId() {
return R.string.sharpness;
}
@Override
public int getOverlayBitmaps() {
return R.drawable.filtershow_button_colors_sharpen;
}
@Override
public void createFilter(android.content.res.Resources res, float scaleFactor,
boolean highQuality) {
......
......@@ -47,6 +47,13 @@ public class ImageSmallFilter extends ImageShow implements View.OnClickListener
protected final int mTextColor = Color.WHITE;
private ImageSmallFilter mNullFilter;
private Bitmap mOverlayBitmap = null;
private final int mOverlayTint = Color.argb(100, 0, 0, 0);
public void setOverlayBitmap(Bitmap bitmap){
mOverlayBitmap = bitmap;
}
public static void setMargin(int value) {
mMargin = value;
}
......@@ -188,6 +195,13 @@ public class ImageSmallFilter extends ImageShow implements View.OnClickListener
mPaint.setTextSize(mTextSize);
mPaint.setColor(mTextColor);
canvas.drawText(mImageFilter.getName(), x, y - mTextMargin, mPaint);
if (mOverlayBitmap != null) {
mPaint.setColor(mOverlayTint);
canvas.drawRect(0, mMargin, getWidth(), getWidth() + mMargin, mPaint);
Rect d = new Rect(0, mMargin, getWidth() - mMargin, getWidth());
mPaint.setColor(Color.BLACK);
drawImage(canvas, mOverlayBitmap, d);
}
}
public void drawImage(Canvas canvas, Bitmap image, Rect destination) {
......
/*
* Copyright (C) 2012 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.Bitmap;
import android.graphics.Canvas;
import android.graphics.Rect;
/**
* TODO: Insert description here. (generated by hoford)
*/
public class ImageWithIcon extends ImageSmallFilter {
/**
* @param context
*/
public ImageWithIcon(Context context) {
super(context);
// TODO(hoford): Auto-generated constructor stub
}
private Bitmap bitmap;
public void setIcon(Bitmap bitmap){
this.bitmap = bitmap;
}
@Override
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
if (bitmap != null) {
Rect d = new Rect(0, mMargin, getWidth() - mMargin, getWidth());
drawImage(canvas, bitmap, d);
}
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment