简单的调色板:
我们往往可能需要具体颜色的RGB数值,比如设置字体颜色或则背景,这时候可能会借助第三方软件去调色,然后再应用到程序上,为什么不在Android上做一个调色板呢?以下是我的思路:
003 | import android.app.Activity; |
004 | import android.graphics.Color; |
005 | import android.os.Bundle; |
006 | import android.os.Handler; |
007 | import android.os.Message; |
008 | import android.widget.SeekBar; |
009 | import android.widget.SeekBar.OnSeekBarChangeListener; |
010 | import android.widget.TextView; |
011 | public class ColorActivity extends Activity { |
012 | private TextView red; |
013 | private TextView blue; |
014 | private TextView green; |
015 | private SeekBar redBar; |
016 | private SeekBar blueBar; |
017 | private SeekBar greenBar; |
018 | private TextView txt; |
019 | private TextView color; |
023 | /** Called when the activity is first created. */ |
025 | public void onCreate(Bundle savedInstanceState) { |
026 | super .onCreate(savedInstanceState); |
027 | setContentView(R.layout.main); |
032 | private void findView() { |
033 | red = (TextView) findViewById(R.id.textView_r); |
034 | green = (TextView) findViewById(R.id.textView_g); |
035 | blue = (TextView) findViewById(R.id.textView_b); |
036 | redBar = (SeekBar) findViewById(R.id.seekBar_r); |
037 | greenBar = (SeekBar) findViewById(R.id.seekBar_g); |
038 | blueBar = (SeekBar) findViewById(R.id.seekBar_b); |
039 | txt = (TextView) findViewById(R.id.txt); |
040 | color = (TextView) findViewById(R.id.color); |
042 | private void setSeekBarListen() { |
043 | OnSeekBarChangeListener listener = new OnSeekBarChangeListener() { |
045 | public void onStopTrackingTouch(SeekBar arg0) { |
049 | public void onStartTrackingTouch(SeekBar arg0) { |
053 | public void onProgressChanged(SeekBar seekbar, int progress, |
056 | Message msg = new Message(); |
057 | switch (seekbar.getId()) { |
060 | Color.rgb(mRed, mGreen, mBlue); |
061 | txt.setTextColor(Color.rgb(mRed, mGreen, mBlue)); |
064 | mHandler.sendMessage(msg); |
068 | Color.rgb(mRed, mGreen, mBlue); |
069 | txt.setTextColor(Color.rgb(mRed, mGreen, mBlue)); |
073 | mHandler.sendMessage(msg); |
077 | Color.rgb(mRed, mGreen, mBlue); |
078 | txt.setTextColor(Color.rgb(mRed, mGreen, mBlue)); |
082 | mHandler.sendMessage(msg); |
090 | redBar.setOnSeekBarChangeListener(listener); |
091 | greenBar.setOnSeekBarChangeListener(listener); |
092 | blueBar.setOnSeekBarChangeListener(listener); |
094 | private void initseekBar() { |
096 | greenBar.setMax( 0xff ); |
097 | blueBar.setMax( 0xff ); |
098 | color.setTextSize( 20 ); |
100 | Handler mHandler = new Handler() { |
101 | public void handleMessage(Message msg) { |
104 | red.setText( "R: 0x" + Integer.toHexString(mRed)); |
107 | green.setText( "G: 0x" + Integer.toHexString(mGreen)); |
110 | blue.setText( "B: 0x" + Integer.toHexString(mBlue)); |
112 | color.setText( "Color: 0x" + Integer.toHexString(mRed) |
113 | + Integer.toHexString(mGreen) + Integer.toHexString(mBlue)); |