package com.avenwu.deepinandroid; import android.graphics.Color; import android.graphics.PorterDuff; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.Spinner; import android.widget.Toast; import java.lang.reflect.Field; import butterknife.ButterKnife; import butterknife.InjectView; /** * Created by chaobin on 2/3/15. */ public class ColorFilterDemo extends ActionBarActivity implements AdapterView.OnItemSelectedListener { @InjectView(R.id.spinner) Spinner mPorterDuffSpinner; @InjectView(R.id.iv_preview) ImageView mPreviewView; @InjectView(R.id.iv_image) ImageView mImage; static final int MASK_HINT_COLOR = 0x99000000; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.filter_layout); ButterKnife.inject(this); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.porter_duff_array, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line); mPorterDuffSpinner.setPrompt("Select the PorterDuff"); mPorterDuffSpinner.setAdapter(adapter); mPorterDuffSpinner.setOnItemSelectedListener(this); int defaultSelection = 0; try { Field field = PorterDuff.Mode.class.getDeclaredField("nativeInt"); field.setAccessible(true); defaultSelection = field.getInt(PorterDuff.Mode.DARKEN); } catch (NoSuchFieldException | IllegalAccessException e) { e.printStackTrace(); } mPorterDuffSpinner.setSelection(defaultSelection); } @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { PorterDuff.Mode mode = PorterDuff.Mode.class.getEnumConstants()[position]; mPreviewView.setColorFilter(Color.GREEN, mode); mImage.setColorFilter(MASK_HINT_COLOR, mode); Toast.makeText(this, "Select " + mode, Toast.LENGTH_SHORT).show(); } @Override public void onNothingSelected(AdapterView<?> parent) { } }