package spike.palette.paul.com.palettespike; import android.app.Activity; import android.content.Intent; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.drawable.BitmapDrawable; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; import android.view.Menu; import android.view.MenuItem; import android.widget.ImageView; import android.widget.TextView; import java.io.IOException; public class MyActivity extends Activity { private static final int RESULT_LOAD_IMAGE = 13370; private ImageView imageView; private TextView textViewPrimaryAccent; private TextView textViewSecondaryAccent; private TextView textViewTertiaryAccent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); imageView = (ImageView) findViewById(R.id.image_view); textViewPrimaryAccent = (TextView) findViewById(R.id.text_view_primary_accent); textViewSecondaryAccent = (TextView) findViewById(R.id.text_view_secondary_accent); textViewTertiaryAccent = (TextView) findViewById(R.id.text_view_tertiary_accent); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.my, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.action_get_colors) { try { getColors(); } catch (IOException e) { e.printStackTrace(); } return true; } if (id == R.id.action_set_picture) { Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(Intent.createChooser(intent, "Select a picture"), RESULT_LOAD_IMAGE); return true; } return super.onOptionsItemSelected(item); } private void getColors() throws IOException { Bitmap bitmap = ((BitmapDrawable) imageView.getDrawable()).getBitmap(); DominantColorCalculator dominantColorCalculator = new DominantColorCalculator(bitmap); textViewPrimaryAccent.setBackgroundColor(dominantColorCalculator.getColorScheme().primaryAccent); textViewSecondaryAccent.setBackgroundColor(dominantColorCalculator.getColorScheme().secondaryAccent); textViewTertiaryAccent.setBackgroundColor(dominantColorCalculator.getColorScheme().tertiaryAccent); textViewPrimaryAccent.setTextColor(dominantColorCalculator.getColorScheme().primaryText); textViewSecondaryAccent.setTextColor(dominantColorCalculator.getColorScheme().secondaryText); textViewTertiaryAccent.setTextColor(dominantColorCalculator.getColorScheme().secondaryText); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) { Uri selectedImageUri = data.getData(); String selectedImagePath = getPath(selectedImageUri); imageView.setImageBitmap(BitmapFactory.decodeFile(selectedImagePath)); } } public String getPath(Uri uri) { if (uri == null) { return null; } String[] projection = {MediaStore.Images.Media.DATA}; Cursor cursor = managedQuery(uri, projection, null, null, null); if (cursor != null) { int column_index = cursor .getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); return cursor.getString(column_index); } return uri.getPath(); } }