package hillfly.wifichat.common.view.imagefactory; import hillfly.wifichat.R; import hillfly.wifichat.activity.ImageFactoryActivity; import hillfly.wifichat.common.view.RotateImageView; import hillfly.wifichat.common.view.RotateImageView.RotateType; import hillfly.wifichat.util.ImageUtils; import java.util.ArrayList; import java.util.List; import android.graphics.Bitmap; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.TextView; public class ImageFactoryFliter extends ImageFactory { private RotateImageView mRivImage; private String mPath; private Bitmap mBitmap; private List<FilterItem> mFilterItems; private View[] mFliterBlocks; private int mSelectBlock = 0; private Bitmap mSelectBitmap; public ImageFactoryFliter(ImageFactoryActivity activity, View contentRootView) { super(activity, contentRootView); } @Override public void initViews() { mRivImage = (RotateImageView) findViewById(R.id.imagefactory_fliter_riv_image); } @Override public void initEvents() { } public void Rotate() { mSelectBitmap = mRivImage.rotate(RotateType.RIGHT, 90.0f); } public Bitmap getBitmap() { return mSelectBitmap; } public void init(String path) { mPath = path; mBitmap = ImageUtils.getBitmapFromPath(mPath); if (mBitmap != null) { mSelectBitmap = mBitmap; mRivImage.setImageBitmap(mBitmap); initFilterList(); initFilterBlocks(); refreshBlockBg(); } } private void initFilterList() { mFilterItems = new ArrayList<ImageFactoryFliter.FilterItem>(); FilterItem filterItem_1 = new FilterItem(FilterType.默认, "默认"); FilterItem filterItem_2 = new FilterItem(FilterType.LOMO, "LOMO"); mFilterItems.add(filterItem_1); mFilterItems.add(filterItem_2); } private void initFilterBlocks() { mFliterBlocks = new View[2]; mFliterBlocks[0] = findViewById(R.id.imagefactory_fliter_item_1); mFliterBlocks[1] = findViewById(R.id.imagefactory_fliter_item_2); int mLength = mFilterItems.size(); for (int i = 0; i < mLength; i++) { View cover = mFliterBlocks[i].findViewById(R.id.filter_item_cover); cover.setTag(i); cover.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { mSelectBlock = (Integer) v.getTag(); refreshBlockBg(); changeImage(); } }); ImageView image = (ImageView) mFliterBlocks[i] .findViewById(R.id.filter_item_image); TextView text = (TextView) mFliterBlocks[i] .findViewById(R.id.filter_item_text); image.setImageBitmap(ImageUtils.getFilter( mFilterItems.get(i).mFilterType, mBitmap)); text.setText(mFilterItems.get(i).mFilterName); } } private void refreshBlockBg() { int mLength = mFilterItems.size(); for (int i = 0; i < mLength; i++) { View cover = mFliterBlocks[i].findViewById(R.id.filter_item_cover); if (mSelectBlock == i) { cover.setSelected(true); } else { cover.setSelected(false); } } } private void changeImage() { mSelectBitmap = ImageUtils.getFilter( mFilterItems.get(mSelectBlock).mFilterType, mBitmap); mRivImage.setImageBitmap(mSelectBitmap); } public class FilterItem { public FilterItem(FilterType mFilterType, String mFilterName) { super(); this.mFilterType = mFilterType; this.mFilterName = mFilterName; } public FilterType mFilterType; public String mFilterName; } public enum FilterType { 默认, LOMO; } }