diff --git a/app/build.gradle b/app/build.gradle
index 6a44ef0..299c55a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -75,8 +75,10 @@ dependencies {
// calendar 组件
- implementation 'com.github.angcyo:CalendarView:3.7.1.37'
+// implementation 'com.github.angcyo:CalendarView:3.7.1.37'
implementation 'com.necer.ncalendar:ncalendar:5.0.2'
+ // 颜色选择器
+ implementation "com.github.skydoves:colorpickerview:2.3.0"
// fab 组件
implementation 'com.github.clans:fab:1.6.4'
// hutool 工具
diff --git a/app/src/main/java/cc/niushuai/dididone/ui/base/BaseFragment.java b/app/src/main/java/cc/niushuai/dididone/ui/base/BaseFragment.java
new file mode 100644
index 0000000..8ee81d8
--- /dev/null
+++ b/app/src/main/java/cc/niushuai/dididone/ui/base/BaseFragment.java
@@ -0,0 +1,31 @@
+package cc.niushuai.dididone.ui.base;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+
+public abstract class BaseFragment extends Fragment implements InitAndSetListener {
+
+
+ @Nullable
+ @Override
+ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+ return super.onCreateView(inflater, container, savedInstanceState);
+ }
+
+
+ @Override
+ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+
+ init();
+
+ setListeners();
+ }
+
+}
diff --git a/app/src/main/java/cc/niushuai/dididone/ui/setting/project/NewProjectActivity.java b/app/src/main/java/cc/niushuai/dididone/ui/setting/project/NewProjectActivity.java
index 08d7c15..ddede1f 100644
--- a/app/src/main/java/cc/niushuai/dididone/ui/setting/project/NewProjectActivity.java
+++ b/app/src/main/java/cc/niushuai/dididone/ui/setting/project/NewProjectActivity.java
@@ -1,20 +1,31 @@
package cc.niushuai.dididone.ui.setting.project;
import android.content.Intent;
+import android.graphics.Color;
import android.os.Bundle;
+import android.view.Gravity;
+import android.widget.TextView;
-import androidx.annotation.Nullable;
+import com.mikepenz.iconics.IconicsDrawable;
+import com.skydoves.colorpickerview.ColorEnvelope;
+import com.skydoves.colorpickerview.ColorPickerDialog;
+import com.skydoves.colorpickerview.ColorPickerView;
+import com.skydoves.colorpickerview.listeners.ColorEnvelopeListener;
+import com.skydoves.colorpickerview.listeners.ColorListener;
import cc.niushuai.dididone.R;
import cc.niushuai.dididone.biz.BizGlobal;
import cc.niushuai.dididone.databinding.ActivityNewProjectBinding;
import cc.niushuai.dididone.ui.base.BaseActivity;
import cc.niushuai.dididone.util.Toasts;
+import cc.niushuai.dididone.util.XLog;
+import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.StrUtil;
public class NewProjectActivity extends BaseActivity {
private ActivityNewProjectBinding binding;
+ private int selectedColor = -324225874;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -41,6 +52,48 @@ public class NewProjectActivity extends BaseActivity {
// 颜色选择器
binding.npColorPicker.setOnClickListener(view -> {
+
+ ColorPickerDialog.Builder builder = new ColorPickerDialog
+ .Builder(this)
+ .setView(R.layout.my_colorpickerview_dialog_colorpicker);
+
+ TextView title = new TextView(this);
+ title.setText("选择一个图标颜色");
+ title.setPadding(10, 30, 0, 30);
+ title.setGravity(Gravity.CENTER_VERTICAL);
+ title.setTextSize(24);
+ title.setTextColor(Color.BLACK);
+
+ ColorPickerView colorPickerView = builder.getColorPickerView();
+ colorPickerView.setInitialColor(selectedColor);
+ colorPickerView.setColorListener(new ColorListener() {
+ @Override
+ public void onColorSelected(int color, boolean fromUser) {
+ selectedColor = color;
+ title.setBackgroundColor(color);
+ }
+ });
+
+ builder.setCustomTitle(title)
+ .setPositiveButton(getString(R.string.cp_color_confirm),
+ new ColorEnvelopeListener() {
+ @Override
+ public void onColorSelected(ColorEnvelope envelope, boolean fromUser) {
+// setLayoutColor(envelope);
+ XLog.d("选择的颜色:{} {} {}, fromUser: {}", envelope.getColor(), envelope.getArgb(), envelope.getHexCode(), fromUser);
+ selectedColor = envelope.getColor();
+
+ changeIconColor(envelope.getColor());
+ }
+ })
+ .setNegativeButton(getString(R.string.cancel), (dialogInterface, i) -> {
+ colorPickerView.setInitialColor(selectedColor);
+ dialogInterface.dismiss();
+ })
+ .attachAlphaSlideBar(true)
+ .attachBrightnessSlideBar(true)
+ .setBottomSpace(12);
+ builder.show();
});
// 返回按钮
@@ -66,4 +119,12 @@ public class NewProjectActivity extends BaseActivity {
});
}
+ private void changeIconColor(int color) {
+ binding.npIconFill.setImageDrawable(new IconicsDrawable(this)
+ .icon(ReflectUtil.getFieldValue(binding.npIconFill.getDrawable(), "mIcon").toString())
+ .color(color)
+ .sizeDp(50)
+ );
+ }
+
}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_new_project.xml b/app/src/main/res/layout/activity_new_project.xml
index c59adb2..be3da62 100644
--- a/app/src/main/res/layout/activity_new_project.xml
+++ b/app/src/main/res/layout/activity_new_project.xml
@@ -102,4 +102,5 @@
app:layout_constraintWidth_percent="0.35" />
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index f60cf24..8d9f436 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -29,5 +29,7 @@
点我选颜色
返回
保存
+ 选择该颜色
+ 取消
\ No newline at end of file