所以我在我的.xml布局上得到了这个按钮和这个ColorView,就像你在左侧的snapshoot中看到的那样,我想用你在右边看到的对话框中用户选择的颜色填充ColorView方块的背景snapshoot。
我的.xml代码:
<Button
android:id="@+id/color_button"
style="@style/buttonStyle"
android:layout_width="280sp"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/color_view"
android:layout_alignParentStart="true"
android:layout_marginStart="13dp"
android:onClick="showColorPickerDialog"
android:text="Color" />
<es.lost2found.lost2foundUI.pickerUI.ColorView
android:id="@+id/color_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="18dp"
android:background="@color/otherUserMsgColor">
</es.lost2found.lost2foundUI.pickerUI.ColorView>
按钮上调用的onClick方法就是这个:
public void showColorPickerDialog(View v) {
ColorPickerUI colorpicker = new ColorPickerUI();
colorpicker.build()
.title(R.string.color_dialog_title)
.colorPreset(Color.BLACK)
.allowCustom(true)
.show(this, "dialog");
}
我正在使用QuadFlask ColorPicker,我不知道是否有方法可以执行我想要的操作,我一直在搜索存储库,但我没有找到它。
如果有任何方法可以获得我想要的其他colorPicker,请告诉我,任何帮助都会被贬低!
答案 0 :(得分:2)
您需要添加侦听器,当选择颜色或按下正按钮时将触发该侦听器,因此请使用
public void showColorPickerDialog(View v) {
ColorPickerUI colorpicker = new ColorPickerUI();
colorpicker
.title(R.string.color_dialog_title)
.colorPreset(Color.BLACK)
.allowCustom(true)// change color on continuous selection
.addOnColorChangedListener(new OnColorChangedListener() {
@Override
public void onColorChanged(int selectedColor) {
findViewById(R.id.color_button).setBackgroundColor(selectedColor);
}
})// change color on selection
.addOnColorSelectedListener( new OnColorSelectedListener() {
@Override
public void onColorSelected(int selectedColor) {
findViewById(R.id.color_button).setBackgroundColor(selectedColor);
}
})
.build().show(this, "dialog");
}
答案 1 :(得分:1)
最后我明白了,我在我的ColorPicker类上使用了#include <cmath>
int main ()
{
auto sellmeier = [B1=0.6961663,
B2=0.4079426,
B3=0.8974794,
C1=0.0684043*0.0684043,
C2=0.1162414*0.1162414,
C3=9.896161*9.896161] (double const wavelength)
{
double refractive_index_sq = 1;
double lambda_sq = std::pow(wavelength, 2);
refractive_index_sq += B1*lambda_sq/(lambda_sq-C1);
refractive_index_sq += B2*lambda_sq/(lambda_sq-C2);
refractive_index_sq += B3*lambda_sq/(lambda_sq-C3);
return refractive_index_sq;
};
sellmeier(1.0);
}
方法,我把代码放在这里以防有人需要它
onColorSet()
我所要做的就是使用变量mSelectedColor和setBackground。非常感谢@Pavneet_Singh的帮助,我相信有人会使用您的代码!