diff options
Diffstat (limited to 'src/com/android/gallery3d/filtershow/controller')
4 files changed, 141 insertions, 0 deletions
diff --git a/src/com/android/gallery3d/filtershow/controller/BasicSlider.java b/src/com/android/gallery3d/filtershow/controller/BasicSlider.java index c54fe77d8..df5b6ae73 100644 --- a/src/com/android/gallery3d/filtershow/controller/BasicSlider.java +++ b/src/com/android/gallery3d/filtershow/controller/BasicSlider.java @@ -34,6 +34,7 @@ public class BasicSlider implements Control { @Override public void setUp(ViewGroup container, Parameter parameter, Editor editor) { + container.removeAllViews(); mEditor = editor; Context context = container.getContext(); mParameter = (ParameterInteger) parameter; diff --git a/src/com/android/gallery3d/filtershow/controller/ParameterStyles.java b/src/com/android/gallery3d/filtershow/controller/ParameterStyles.java new file mode 100644 index 000000000..c267d3da3 --- /dev/null +++ b/src/com/android/gallery3d/filtershow/controller/ParameterStyles.java @@ -0,0 +1,37 @@ +/* + * 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.controller; + +import android.content.Context; + +import com.android.gallery3d.filtershow.cache.RenderingRequestCaller; + +public interface ParameterStyles extends Parameter { + public static String sParameterType = "ParameterStyles"; + + int getNumberOfStyles(); + + int getDefaultSelected(); + + int getSelected(); + + void setSelected(int value); + + void getIcon(int index, RenderingRequestCaller caller); + + String getStyleTitle(int index, Context context); +} diff --git a/src/com/android/gallery3d/filtershow/controller/StyleChooser.java b/src/com/android/gallery3d/filtershow/controller/StyleChooser.java new file mode 100644 index 000000000..201f6613e --- /dev/null +++ b/src/com/android/gallery3d/filtershow/controller/StyleChooser.java @@ -0,0 +1,102 @@ +package com.android.gallery3d.filtershow.controller; + +import android.content.Context; +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.ScaleDrawable; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.LinearLayout; + +import com.android.gallery3d.R; +import com.android.gallery3d.filtershow.cache.RenderingRequest; +import com.android.gallery3d.filtershow.cache.RenderingRequestCaller; +import com.android.gallery3d.filtershow.editors.Editor; + +import java.util.Vector; + +public class StyleChooser implements Control, RenderingRequestCaller { + private final String LOGTAG = "StyleChooser"; + protected ParameterStyles mParameter; + protected LinearLayout mLinearLayout; + protected Editor mEditor; + private View mTopView; + private int mProcessingButton = 0; + private Vector<Button> mIconButton = new Vector<Button>(); + protected int mLayoutID = R.layout.filtershow_control_style_chooser; + + @Override + public void setUp(ViewGroup container, Parameter parameter, Editor editor) { + container.removeAllViews(); + mEditor = editor; + Context context = container.getContext(); + mParameter = (ParameterStyles) parameter; + LayoutInflater inflater = + (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + mTopView = inflater.inflate(mLayoutID, container, true); + mLinearLayout = (LinearLayout) mTopView.findViewById(R.id.listStyles); + mTopView.setVisibility(View.VISIBLE); + int n = mParameter.getNumberOfStyles(); + mIconButton.clear(); + for (int i = 0; i < n; i++) { + Button button = new Button(context); + mIconButton.add(button); + final int buttonNo = i; + button.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View arg0) { + mParameter.setSelected(buttonNo); + } + }); + mLinearLayout.addView(button); + } + mProcessingButton = 0; + mParameter.getIcon(mProcessingButton, this); + } + + @Override + public View getTopView() { + return mTopView; + } + + @Override + public void setPrameter(Parameter parameter) { + mParameter = (ParameterStyles) parameter; + updateUI(); + } + + @Override + public void updateUI() { + if (mParameter == null) { + return; + } + } + + @Override + public void available(RenderingRequest request) { + Bitmap bmap = request.getBitmap(); + if (bmap == null) { + return; + } + + try { + Button button = mIconButton.get(mProcessingButton); + Resources res = mLinearLayout.getContext().getResources(); + BitmapDrawable drawable = new BitmapDrawable(res, bmap); + float scale = 12000 / (float) button.getWidth(); + ScaleDrawable sd = new ScaleDrawable(drawable, 0, scale, scale); + + button.setCompoundDrawablesWithIntrinsicBounds(null, sd, null, null); + } catch (Exception e) { + return; + } + + mProcessingButton++; + if (mProcessingButton < mParameter.getNumberOfStyles()) + mParameter.getIcon(mProcessingButton, this); + } + +} diff --git a/src/com/android/gallery3d/filtershow/controller/TitledSlider.java b/src/com/android/gallery3d/filtershow/controller/TitledSlider.java index 30b6fdb9d..cbaa48923 100644 --- a/src/com/android/gallery3d/filtershow/controller/TitledSlider.java +++ b/src/com/android/gallery3d/filtershow/controller/TitledSlider.java @@ -40,6 +40,7 @@ public class TitledSlider implements Control { @Override public void setUp(ViewGroup container, Parameter parameter, Editor editor) { + container.removeAllViews(); mEditor = editor; Context context = container.getContext(); mParameter = (ParameterInteger) parameter; |