Android Open Source - InfoWallpaper Color Picker Dialog






From Project

Back to project page InfoWallpaper.

License

The source code is released under:

MIT License

If you think the Android project InfoWallpaper listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.andreashedin.general;
//  w w w  . ja v a2s  .c  om
import com.andreashedin.infowallpaper.R;

import android.os.Bundle;
import android.app.Dialog;
import android.content.Context;
import android.graphics.*;
import android.view.View;
import android.widget.Button;
import android.widget.SeekBar;
import android.widget.TextView;

public class ColorPickerDialog extends Dialog 
  implements View.OnClickListener,
  SeekBar.OnSeekBarChangeListener {
  
    public interface OnColorChangedListener {
        void colorChanged(int color, String key);
    }

    private OnColorChangedListener mListener;
    private int mInitialColor;
    private String mKey = "";
    
    private SeekBar mRedBar;
    private SeekBar mBlueBar;
    private SeekBar mGreenBar;
    private SeekBar mTransparencyBar;
    private TextView mColorInput;
    private TextView mRedInput;
    private TextView mGreenInput;
    private TextView mBlueInput;
    private TextView mTransparencyInput;
    private TextView mColorPreview;

    public ColorPickerDialog(Context context, OnColorChangedListener listener, int initialColor, String key) {
        super(context);

        mKey = key;
        mListener = listener;
        mInitialColor = initialColor;
        
    }
    
    @Override
  public void onClick(View v) {
      if(v.getId() == R.id.buttonSetColor) {
        mListener.colorChanged(getColor(), mKey);
        dismiss();
      }
      else {
        cancel();
      }
  }
    
    @Override
  public void onBackPressed() {
    cancel();
  }
    
    private int getColor() {
      int alpha = mTransparencyBar.getProgress();
      int red = mRedBar.getProgress();
      int green = mGreenBar.getProgress();
      int blue = mBlueBar.getProgress();
      
      return Color.argb(alpha, red, green, blue);
    }
    
    private void updateColor() {
      int red = mRedBar.getProgress();
      int green = mGreenBar.getProgress();
      int blue = mBlueBar.getProgress();
      int alpha = mTransparencyBar.getProgress();
      
      int color = Color.argb(alpha, red, green, blue);
      
      setColor(color);
    }
    
    private void setColor(int color) {
      int red = Color.red(color);
      int green = Color.green(color);
      int blue = Color.blue(color);
      int alpha = Color.alpha(color);
      
      mRedBar.setProgress(red);
      mGreenBar.setProgress(green);
      mBlueBar.setProgress(blue);
      mTransparencyBar.setProgress(alpha);
      
      mRedInput.setText(String.valueOf(red));
      mGreenInput.setText(String.valueOf(green));
      mBlueInput.setText(String.valueOf(blue));
      mTransparencyInput.setText(String.valueOf(alpha));
      
      mColorPreview.setBackgroundColor(Color.rgb(red, green, blue));
      
      String hexRed = Integer.toHexString(red);
      String hexGreen = Integer.toHexString(green);
      String hexBlue = Integer.toHexString(blue);
      
      String hex = leadingZero(hexRed) + leadingZero(hexGreen) + leadingZero(hexBlue);
      mColorInput.setText(hex);
    }
    
    private String leadingZero(String in) {
      String out = in;
      
      if (in.length() < 2) {
        out = "0" + in;
      }
      
      return out;
    }
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.color_picker); 
        
        Button b = (Button)findViewById(R.id.buttonSetColor);
        b.setOnClickListener(this);
        b = (Button)findViewById(R.id.buttonCancel);
        b.setOnClickListener(this);
        
        mRedBar = (SeekBar)findViewById(R.id.seekBarRed);
        mRedBar.setOnSeekBarChangeListener(this);
        mGreenBar = (SeekBar)findViewById(R.id.seekBarGreen);
        mGreenBar.setOnSeekBarChangeListener(this);
        mBlueBar = (SeekBar)findViewById(R.id.seekBarBlue);
        mBlueBar.setOnSeekBarChangeListener(this);
        mTransparencyBar = (SeekBar)findViewById(R.id.seekBarTransparency);
        mTransparencyBar.setOnSeekBarChangeListener(this);
        
        mRedInput = (TextView)findViewById(R.id.redInput);
        //mRedInput.addTextChangedListener(this);
        //mRedInput.setEnabled(false);
        mGreenInput = (TextView)findViewById(R.id.greenInput);
        //mGreenInput.setEnabled(false);
        //mGreenInput.addTextChangedListener(this);
        mBlueInput = (TextView)findViewById(R.id.blueInput);
        //mBlueInput.setEnabled(false);
        //mBlueInput.addTextChangedListener(this);
        mTransparencyInput = (TextView)findViewById(R.id.transparencyInput);
        //mTransparencyInput.setEnabled(false);
        //mTransparencyInput.addTextChangedListener(this);
        mColorInput = (TextView)findViewById(R.id.htmlColorInput);
        //mColorInput.setEnabled(false);
        
        mColorPreview = (TextView)findViewById(R.id.colorPreview);
        
        setColor(mInitialColor);
        setTitle(R.string.colorPickerTitle);
    }

  @Override
  public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
    if(fromUser) {
      if(seekBar.getId() == R.id.seekBarRed) {
        mRedInput.setText(String.valueOf(progress));
      }
      else if(seekBar.getId() == R.id.seekBarGreen) {
        mGreenInput.setText(String.valueOf(progress));
      }
      else if(seekBar.getId() == R.id.seekBarBlue) {
        mBlueInput.setText(String.valueOf(progress));
      }
      else if(seekBar.getId() == R.id.seekBarTransparency) {
        mTransparencyInput.setText(String.valueOf(progress));
      }
      
      updateColor();
    }
  }

  @Override
  public void onStartTrackingTouch(SeekBar seekBar) { }

  @Override
  public void onStopTrackingTouch(SeekBar seekBar) { }
}




Java Source Code List

com.andreashedin.general.ColorPickerDialog.java
com.andreashedin.general.CustomizeInfoDialog.java
com.andreashedin.general.EnterStringDialog.java
com.andreashedin.general.PickItemDialog.java
com.andreashedin.general.PositionInfosDialog.java
com.andreashedin.general.SelectConfigurationDialog.java
com.andreashedin.general.TextSizeDialog.java
com.andreashedin.general.WeatherSettingsDialog.java
com.andreashedin.infowallpaper.Background.java
com.andreashedin.infowallpaper.BatteryDataCollector.java
com.andreashedin.infowallpaper.ColorHandler.java
com.andreashedin.infowallpaper.ConfigHandler.java
com.andreashedin.infowallpaper.CurrentSongDataCollector.java
com.andreashedin.infowallpaper.DataCollector.java
com.andreashedin.infowallpaper.DateTimeDataCollector.java
com.andreashedin.infowallpaper.DisplayValuePair.java
com.andreashedin.infowallpaper.InfoData.java
com.andreashedin.infowallpaper.InfoItem.java
com.andreashedin.infowallpaper.LiveInfoSettings.java
com.andreashedin.infowallpaper.LiveInfoWallpaper.java
com.andreashedin.infowallpaper.PhoneStatusDataCollector.java
com.andreashedin.infowallpaper.Phone.java
com.andreashedin.infowallpaper.SaveLoadData.java
com.andreashedin.infowallpaper.Screen.java
com.andreashedin.infowallpaper.WeatherDataCollector.java
com.andreashedin.infowallpaper.WeatherHandler.java