Loading res/layout/filtershow_activity.xml +35 −28 Original line number Diff line number Diff line Loading @@ -193,23 +193,28 @@ android:orientation="horizontal" android:visibility="gone" > <com.android.gallery3d.filtershow.ui.ImageButtonTitle <FrameLayout android:layout_width="fill_parent" android:layout_height="fill_parent" > <com.android.gallery3d.filtershow.ui.FramedTextButton android:id="@+id/aspect" style="@style/FilterShowBottomButton" android:layout_gravity="left" android:layout_weight="0" android:layout_width="64dip" android:layout_height="64dip" android:layout_gravity="center_vertical|left" android:background="@android:color/transparent" android:scaleType="centerInside" android:visibility="gone" android:src="@drawable/filtershow_button_geometry_straighten" android:text="@string/aspect" /> android:text="@string/aspectOriginal_effect" /> <ImageButton <com.android.gallery3d.filtershow.ui.FramedTextButton android:id="@+id/pickCurvesChannel" android:layout_width="64dip" android:layout_height="64dip" android:layout_gravity="center_vertical|left" android:background="@android:color/transparent" android:scaleType="centerInside" android:text="@string/curvesRGB" android:src="@drawable/filtershow_button_show_original" /> android:visibility="gone" android:text="@string/curves_channel_rgb" /> <Button android:id="@+id/applyEffect" Loading @@ -221,6 +226,8 @@ android:gravity="center" android:text="@string/apply_effect" android:textSize="18dip" /> </FrameLayout> </LinearLayout> <HorizontalScrollView Loading res/menu/filtershow_menu_crop.xml 0 → 100644 +24 −0 Original line number Diff line number Diff line <menu xmlns:android="http://schemas.android.com/apk/res/android" > <group android:id="@+id/crop_popupmenu" > <item android:id="@+id/crop_menu_1to1" android:title="@string/aspect1to1_effect"/> <item android:id="@+id/crop_menu_4to6" android:title="@string/aspect4to6_effect"/> <item android:id="@+id/crop_menu_5to7" android:title="@string/aspect5to7_effect"/> <item android:id="@+id/crop_menu_9to16" android:title="@string/aspect9to16_effect"/> <item android:id="@+id/crop_menu_none" android:title="@string/aspectNone_effect"/> <item android:id="@+id/crop_menu_original" android:title="@string/aspectOriginal_effect"/> </group> </menu> No newline at end of file res/menu/filtershow_menu_curves.xml +5 −5 Original line number Diff line number Diff line <menu xmlns:android="http://schemas.android.com/apk/res/android" > <group android:id="@+id/group_popupmenu" > <group android:id="@+id/curves_popupmenu" > <item android:id="@+id/menu1" android:id="@+id/curve_menu_rgb" android:title="@string/curves_channel_rgb"/> <item android:id="@+id/menu2" android:id="@+id/curve_menu_red" android:title="@string/curves_channel_red"/> <item android:id="@+id/menu3" android:id="@+id/curve_menu_green" android:title="@string/curves_channel_green"/> <item android:id="@+id/menu4" android:id="@+id/curve_menu_blue" android:title="@string/curves_channel_blue"/> </group> Loading src/com/android/gallery3d/filtershow/FilterShowActivity.java +1 −2 Original line number Diff line number Diff line Loading @@ -6,7 +6,6 @@ import android.app.ActionBar; import android.app.Activity; import android.app.ProgressDialog; import android.content.ContentValues; import android.content.Context; import android.content.Intent; import android.content.res.Resources; import android.graphics.Bitmap; Loading Loading @@ -137,7 +136,7 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, ImageSmallFilter.setMargin((int) getPixelsFromDip(3)); ImageSmallFilter.setTextMargin((int) getPixelsFromDip(4)); mImageBorderSize = (int) getPixelsFromDip(20); Drawable curveHandle = getResources().getDrawable(R.drawable.camera_crop_holo); Drawable curveHandle = getResources().getDrawable(R.drawable.camera_crop); int curveHandleSize = (int) getResources().getDimension(R.dimen.crop_indicator_size); Spline.setCurveHandle(curveHandle, curveHandleSize); Spline.setCurveWidth((int) getPixelsFromDip(3)); Loading src/com/android/gallery3d/filtershow/PanelController.java +82 −5 Original line number Diff line number Diff line Loading @@ -3,9 +3,11 @@ package com.android.gallery3d.filtershow; import android.content.Context; import android.text.Html; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewPropertyAnimator; import android.widget.PopupMenu; import android.widget.TextView; import com.android.gallery3d.R; Loading @@ -25,6 +27,7 @@ import com.android.gallery3d.filtershow.filters.ImageFilterWBalance; import com.android.gallery3d.filtershow.imageshow.ImageCrop; import com.android.gallery3d.filtershow.imageshow.ImageShow; import com.android.gallery3d.filtershow.presets.ImagePreset; import com.android.gallery3d.filtershow.ui.FramedTextButton; import com.android.gallery3d.filtershow.ui.ImageButtonTitle; import com.android.gallery3d.filtershow.ui.ImageCurves; Loading Loading @@ -142,6 +145,43 @@ public class PanelController implements OnClickListener { return mSelected; } public void setAspectButton(FramedTextButton button, int itemId) { ImageCrop imageCrop = (ImageCrop) mCurrentImage; switch (itemId) { case R.id.crop_menu_1to1: { button.setText(mContext.getString(R.string.aspect1to1_effect)); imageCrop.apply(1, 1); break; } case R.id.crop_menu_4to6: { button.setText(mContext.getString(R.string.aspect4to6_effect)); imageCrop.apply(6, 4); break; } case R.id.crop_menu_5to7: { button.setText(mContext.getString(R.string.aspect5to7_effect)); imageCrop.apply(7, 5); break; } case R.id.crop_menu_9to16: { button.setText(mContext.getString(R.string.aspect9to16_effect)); imageCrop.apply(16, 9); break; } case R.id.crop_menu_none: { button.setText(mContext.getString(R.string.aspectNone_effect)); imageCrop.applyClear(); break; } case R.id.crop_menu_original: { button.setText(mContext.getString(R.string.aspectOriginal_effect)); imageCrop.applyOriginal(); break; } } imageCrop.invalidate(); } public void nextAspectButton() { if (mAspectButton instanceof ImageButtonTitle && mCurrentImage instanceof ImageCrop) { Loading Loading @@ -331,10 +371,12 @@ public class PanelController implements OnClickListener { } public void resetParameters() { mCurrentImage.resetParameter(); showPanel(mCurrentPanel); if (mCurrentImage != null) { mCurrentImage.resetParameter(); mCurrentImage.select(); } } public boolean onBackPressed() { if (mUtilityPanel == null || !mUtilityPanel.selected()) { Loading @@ -343,6 +385,8 @@ public class PanelController implements OnClickListener { HistoryAdapter adapter = mMasterImage.getHistory(); int position = adapter.undo(); mMasterImage.onItemClick(position); showPanel(mCurrentPanel); mCurrentImage.select(); return false; } Loading Loading @@ -462,6 +506,7 @@ public class PanelController implements OnClickListener { mMasterImage.setImagePreset(copy); filter = copy.getFilter(name); } if (filter == null && name.equalsIgnoreCase( mCurrentImage.getContext().getString(R.string.curvesRGB))) { filter = setImagePreset(new ImageFilterCurves(), name); Loading Loading @@ -514,6 +559,33 @@ public class PanelController implements OnClickListener { mMasterImage.setCurrentFilter(filter); } private void showCurvesPopupMenu(final ImageCurves curves, final FramedTextButton anchor) { PopupMenu popupMenu = new PopupMenu(mCurrentImage.getContext(), anchor); popupMenu.getMenuInflater().inflate(R.menu.filtershow_menu_curves, popupMenu.getMenu()); popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { curves.setChannel(item.getItemId()); anchor.setTextFrom(item.getItemId()); return true; } }); popupMenu.show(); } private void showCropPopupMenu(final FramedTextButton anchor) { PopupMenu popupMenu = new PopupMenu(mCurrentImage.getContext(), anchor); popupMenu.getMenuInflater().inflate(R.menu.filtershow_menu_crop, popupMenu.getMenu()); popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { mUtilityPanel.setAspectButton(anchor, item.getItemId()); return true; } }); popupMenu.show(); } public void showComponent(View view) { if (mUtilityPanel != null && !mUtilityPanel.selected()) { Panel current = mPanels.get(mCurrentPanel); Loading @@ -527,7 +599,12 @@ public class PanelController implements OnClickListener { if (view.getId() == R.id.pickCurvesChannel) { ImageCurves curves = (ImageCurves) showImageView(R.id.imageCurves); curves.nextChannel(); showCurvesPopupMenu(curves, (FramedTextButton) view); return; } if (view.getId() == R.id.aspect) { showCropPopupMenu((FramedTextButton) view); return; } Loading Loading @@ -586,8 +663,8 @@ public class PanelController implements OnClickListener { mUtilityPanel.setEffectName(ename); mUtilityPanel.setShowParameter(false); mUtilityPanel.showCurvesButtons(); ensureFilter("Curves"); mCurrentImage = curves; ensureFilter(ename); break; } case R.id.sharpenButton: { Loading Loading
res/layout/filtershow_activity.xml +35 −28 Original line number Diff line number Diff line Loading @@ -193,23 +193,28 @@ android:orientation="horizontal" android:visibility="gone" > <com.android.gallery3d.filtershow.ui.ImageButtonTitle <FrameLayout android:layout_width="fill_parent" android:layout_height="fill_parent" > <com.android.gallery3d.filtershow.ui.FramedTextButton android:id="@+id/aspect" style="@style/FilterShowBottomButton" android:layout_gravity="left" android:layout_weight="0" android:layout_width="64dip" android:layout_height="64dip" android:layout_gravity="center_vertical|left" android:background="@android:color/transparent" android:scaleType="centerInside" android:visibility="gone" android:src="@drawable/filtershow_button_geometry_straighten" android:text="@string/aspect" /> android:text="@string/aspectOriginal_effect" /> <ImageButton <com.android.gallery3d.filtershow.ui.FramedTextButton android:id="@+id/pickCurvesChannel" android:layout_width="64dip" android:layout_height="64dip" android:layout_gravity="center_vertical|left" android:background="@android:color/transparent" android:scaleType="centerInside" android:text="@string/curvesRGB" android:src="@drawable/filtershow_button_show_original" /> android:visibility="gone" android:text="@string/curves_channel_rgb" /> <Button android:id="@+id/applyEffect" Loading @@ -221,6 +226,8 @@ android:gravity="center" android:text="@string/apply_effect" android:textSize="18dip" /> </FrameLayout> </LinearLayout> <HorizontalScrollView Loading
res/menu/filtershow_menu_crop.xml 0 → 100644 +24 −0 Original line number Diff line number Diff line <menu xmlns:android="http://schemas.android.com/apk/res/android" > <group android:id="@+id/crop_popupmenu" > <item android:id="@+id/crop_menu_1to1" android:title="@string/aspect1to1_effect"/> <item android:id="@+id/crop_menu_4to6" android:title="@string/aspect4to6_effect"/> <item android:id="@+id/crop_menu_5to7" android:title="@string/aspect5to7_effect"/> <item android:id="@+id/crop_menu_9to16" android:title="@string/aspect9to16_effect"/> <item android:id="@+id/crop_menu_none" android:title="@string/aspectNone_effect"/> <item android:id="@+id/crop_menu_original" android:title="@string/aspectOriginal_effect"/> </group> </menu> No newline at end of file
res/menu/filtershow_menu_curves.xml +5 −5 Original line number Diff line number Diff line <menu xmlns:android="http://schemas.android.com/apk/res/android" > <group android:id="@+id/group_popupmenu" > <group android:id="@+id/curves_popupmenu" > <item android:id="@+id/menu1" android:id="@+id/curve_menu_rgb" android:title="@string/curves_channel_rgb"/> <item android:id="@+id/menu2" android:id="@+id/curve_menu_red" android:title="@string/curves_channel_red"/> <item android:id="@+id/menu3" android:id="@+id/curve_menu_green" android:title="@string/curves_channel_green"/> <item android:id="@+id/menu4" android:id="@+id/curve_menu_blue" android:title="@string/curves_channel_blue"/> </group> Loading
src/com/android/gallery3d/filtershow/FilterShowActivity.java +1 −2 Original line number Diff line number Diff line Loading @@ -6,7 +6,6 @@ import android.app.ActionBar; import android.app.Activity; import android.app.ProgressDialog; import android.content.ContentValues; import android.content.Context; import android.content.Intent; import android.content.res.Resources; import android.graphics.Bitmap; Loading Loading @@ -137,7 +136,7 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, ImageSmallFilter.setMargin((int) getPixelsFromDip(3)); ImageSmallFilter.setTextMargin((int) getPixelsFromDip(4)); mImageBorderSize = (int) getPixelsFromDip(20); Drawable curveHandle = getResources().getDrawable(R.drawable.camera_crop_holo); Drawable curveHandle = getResources().getDrawable(R.drawable.camera_crop); int curveHandleSize = (int) getResources().getDimension(R.dimen.crop_indicator_size); Spline.setCurveHandle(curveHandle, curveHandleSize); Spline.setCurveWidth((int) getPixelsFromDip(3)); Loading
src/com/android/gallery3d/filtershow/PanelController.java +82 −5 Original line number Diff line number Diff line Loading @@ -3,9 +3,11 @@ package com.android.gallery3d.filtershow; import android.content.Context; import android.text.Html; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewPropertyAnimator; import android.widget.PopupMenu; import android.widget.TextView; import com.android.gallery3d.R; Loading @@ -25,6 +27,7 @@ import com.android.gallery3d.filtershow.filters.ImageFilterWBalance; import com.android.gallery3d.filtershow.imageshow.ImageCrop; import com.android.gallery3d.filtershow.imageshow.ImageShow; import com.android.gallery3d.filtershow.presets.ImagePreset; import com.android.gallery3d.filtershow.ui.FramedTextButton; import com.android.gallery3d.filtershow.ui.ImageButtonTitle; import com.android.gallery3d.filtershow.ui.ImageCurves; Loading Loading @@ -142,6 +145,43 @@ public class PanelController implements OnClickListener { return mSelected; } public void setAspectButton(FramedTextButton button, int itemId) { ImageCrop imageCrop = (ImageCrop) mCurrentImage; switch (itemId) { case R.id.crop_menu_1to1: { button.setText(mContext.getString(R.string.aspect1to1_effect)); imageCrop.apply(1, 1); break; } case R.id.crop_menu_4to6: { button.setText(mContext.getString(R.string.aspect4to6_effect)); imageCrop.apply(6, 4); break; } case R.id.crop_menu_5to7: { button.setText(mContext.getString(R.string.aspect5to7_effect)); imageCrop.apply(7, 5); break; } case R.id.crop_menu_9to16: { button.setText(mContext.getString(R.string.aspect9to16_effect)); imageCrop.apply(16, 9); break; } case R.id.crop_menu_none: { button.setText(mContext.getString(R.string.aspectNone_effect)); imageCrop.applyClear(); break; } case R.id.crop_menu_original: { button.setText(mContext.getString(R.string.aspectOriginal_effect)); imageCrop.applyOriginal(); break; } } imageCrop.invalidate(); } public void nextAspectButton() { if (mAspectButton instanceof ImageButtonTitle && mCurrentImage instanceof ImageCrop) { Loading Loading @@ -331,10 +371,12 @@ public class PanelController implements OnClickListener { } public void resetParameters() { mCurrentImage.resetParameter(); showPanel(mCurrentPanel); if (mCurrentImage != null) { mCurrentImage.resetParameter(); mCurrentImage.select(); } } public boolean onBackPressed() { if (mUtilityPanel == null || !mUtilityPanel.selected()) { Loading @@ -343,6 +385,8 @@ public class PanelController implements OnClickListener { HistoryAdapter adapter = mMasterImage.getHistory(); int position = adapter.undo(); mMasterImage.onItemClick(position); showPanel(mCurrentPanel); mCurrentImage.select(); return false; } Loading Loading @@ -462,6 +506,7 @@ public class PanelController implements OnClickListener { mMasterImage.setImagePreset(copy); filter = copy.getFilter(name); } if (filter == null && name.equalsIgnoreCase( mCurrentImage.getContext().getString(R.string.curvesRGB))) { filter = setImagePreset(new ImageFilterCurves(), name); Loading Loading @@ -514,6 +559,33 @@ public class PanelController implements OnClickListener { mMasterImage.setCurrentFilter(filter); } private void showCurvesPopupMenu(final ImageCurves curves, final FramedTextButton anchor) { PopupMenu popupMenu = new PopupMenu(mCurrentImage.getContext(), anchor); popupMenu.getMenuInflater().inflate(R.menu.filtershow_menu_curves, popupMenu.getMenu()); popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { curves.setChannel(item.getItemId()); anchor.setTextFrom(item.getItemId()); return true; } }); popupMenu.show(); } private void showCropPopupMenu(final FramedTextButton anchor) { PopupMenu popupMenu = new PopupMenu(mCurrentImage.getContext(), anchor); popupMenu.getMenuInflater().inflate(R.menu.filtershow_menu_crop, popupMenu.getMenu()); popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { mUtilityPanel.setAspectButton(anchor, item.getItemId()); return true; } }); popupMenu.show(); } public void showComponent(View view) { if (mUtilityPanel != null && !mUtilityPanel.selected()) { Panel current = mPanels.get(mCurrentPanel); Loading @@ -527,7 +599,12 @@ public class PanelController implements OnClickListener { if (view.getId() == R.id.pickCurvesChannel) { ImageCurves curves = (ImageCurves) showImageView(R.id.imageCurves); curves.nextChannel(); showCurvesPopupMenu(curves, (FramedTextButton) view); return; } if (view.getId() == R.id.aspect) { showCropPopupMenu((FramedTextButton) view); return; } Loading Loading @@ -586,8 +663,8 @@ public class PanelController implements OnClickListener { mUtilityPanel.setEffectName(ename); mUtilityPanel.setShowParameter(false); mUtilityPanel.showCurvesButtons(); ensureFilter("Curves"); mCurrentImage = curves; ensureFilter(ename); break; } case R.id.sharpenButton: { Loading