加快对话节目

时间:2016-03-02 08:13:31

标签: android button colors

我按下按钮后显示ColorPicker对话框的速度很慢。 我的应用应该像这样工作:

  1. 显示8个按钮
  2. 单击按钮后,使用ColorPicker显示对话框,并将拾取的颜色设置为按钮
  3. 点击另一个按钮后显示另一个对话框,其初始颜色为该按钮
  4. 我正在为每个按钮创建ColorPicker,因为不知道如何使用一个ColorPicker来改变初始颜色。 8个不同的ColorPickers每个保存最后选择的颜色为指定的按钮,这里没有问题。虽然我将来必须改变它。

    问题是,在开始时,ColorPicker对话框在单击按钮后显示~2s(!)使用一次后,单击相同按钮会更快地显示Picker。这是什么原因?

    这是我的代码(抱歉,初学者)

    public class MainActivity extends AppCompatActivity {
    
        public void pickButtonColor(final Button button) {
    
            final ColorPickerDialog colorPickerDialog = ColorPickerDialog.createColorPickerDialog(this, R.style.CustomColorPicker);
    
            button.setOnClickListener(new View.OnClickListener() {
    
                public void onClick(View v) {
    
                    colorPickerDialog.setOnColorPickedListener(new ColorPickerDialog.OnColorPickedListener() {
                        @Override
                        public void onColorPicked(int color, String hexVal) {
                            button.getBackground().setColorFilter(color, Mode.MULTIPLY);
                        }
                    });
                    colorPickerDialog.show();
                }
            });
        }
    
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        pickButtonColor((Button) findViewById(R.id.button1));
        pickButtonColor((Button) findViewById(R.id.button2));
        pickButtonColor((Button) findViewById(R.id.button3));
        pickButtonColor((Button) findViewById(R.id.button4));
        pickButtonColor((Button) findViewById(R.id.button5));
        pickButtonColor((Button) findViewById(R.id.button6));
        pickButtonColor((Button) findViewById(R.id.button7));
        pickButtonColor((Button) findViewById(R.id.button8));
    
    }
    

0 个答案:

没有答案