0

だから...私は、アクティビティの上部にある赤、緑、青のシークバーの進行状況に基づいて、アクティビティ画面の下半分全体を拡張するTextViewに入力しようとしています。ユーザーは任意のシークバーを移動でき、アクティビティの下半分の幅と長さ全体を拡張するTextViewは、3つのシークバーすべての1〜100の移動に一致する正しいRGB配色で塗りつぶされます。

これを行う方法についてのアイデアはありますか?Androidのドキュメントをグーグルで検索しましたが、探しているものが見つかりません。何をすべきかについてのアイデアを私に与えるためのリンクでさえもいいでしょう:)

*ここのコードはAndroidVMで完全に正常に動作することを言及する必要があります

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;

public class MainActivity extends Activity implements OnSeekBarChangeListener
{
    private SeekBar red;
    private SeekBar green;
    private SeekBar blue;

    private TextView progress1;
    private TextView progress2;
    private TextView progress3;


    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        red = (SeekBar)findViewById(R.id.seekBar1);
        red.setOnSeekBarChangeListener(this);
        green = (SeekBar)findViewById(R.id.seekBar2);
        green.setOnSeekBarChangeListener(this);
        blue = (SeekBar)findViewById(R.id.seekBar3);
        blue.setOnSeekBarChangeListener(this);
        progress1 = (TextView)findViewById(R.id.textView2);
        progress2 = (TextView)findViewById(R.id.textView4);
        progress3 = (TextView)findViewById(R.id.textView6);     
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu)
    {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

    @Override
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) 
    {
        switch(seekBar.getId())
        {
        case R.id.seekBar1:
        progress1.setText(""+progress); 
        break;  
        case R.id.seekBar2:
            progress2.setText(""+progress);
            break;
        case R.id.seekBar3:
            progress3.setText(""+progress);
            break;
        }       

    }

    @Override
    public void onStartTrackingTouch(SeekBar arg0) 
    {
        // TODO Auto-generated method stub

    }

    @Override
    public void onStopTrackingTouch(SeekBar arg0) 
    {
        // TODO Auto-generated method stub

    }

}
4

1 に答える 1

0

最大値が 255 になるように SeekBars を構成してから、onProgressChanged()使用しますColor.argb()( docs ):

  int color = Color.argb(255, red.getProgress(), green.getProgress(), blue.getProgress());
  //you can also split that into the 3 channels if you wish
  //i'm assuming you actually want to show the resulting color
  progress1.setBackgroundColor(color);
于 2012-12-02T23:08:25.307 に答える