في هذه المقالة ساشرح طريقة اضافة Color Picker الى مشروعك , يوجد عدد كبير من المكتبات التي تساعدك في ذلك ولكني ساشرح طريقة التعامل مع مكتبة HoloColorPicker  .

في البداية قم بتحميل المكتبة من الرابط الرسمي لها وبعد ذلك قم باضافتها الى مشروعك كمكتبة , قد تواجه مشكلة في المكتبة عند استيرادها لذلك الحل قم بالضغط على اسم المشروع Right Click – Android Tools – Add support Library واتبع الاجراءات التي تظهر لك.

في مشروعك قم بانشاء Layout جديد وقم بتسميته مثلا color_picker “سنتعامل مع هذه layout كـ Dialog لاحقا” بعد ذلك قم باضافة التالي:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" > <com.larswerkman.holocolorpicker.ColorPicker android:id="@+id/picker" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <Button android:id="@+id/done" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Done" />

 

 قم بفتح الكود الخاص بـ Activity الذي تريد اضافة الـ Color Picker له وقم باضافة متغير Integer على مستوى الكلاس ,هذا المتغيير سيحمل قيمة اللون الذي سنسترجعه من الـ color picker , مثال:

static int color=0;

لنفرض الان  ان لديك Button  و  TextView في هذا الـ Activity وتريد عند الضغط عليه يظهر الـ Color Picker ومن ثم يختار المستخدم اللون الذي يرغبه , بعد ذلك يقوم البرنامج تلقائيا بتغيير لون نص الـ TextView باللون الذي اختاره المستخدم , هذه العملية تتم بالكود التالي:

public class MainActivity extends Activity { static int color = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button = (Button) findViewById(R.id.button); final TextView text = (TextView) findViewById(R.id.textt); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { final Dialog dialog = new Dialog(MainActivity.this); // Include dialog.xml file dialog.setContentView(R.layout.color_picker); // Set dialog title dialog.setTitle("Color Picker"); dialog.show(); Button done = (Button) dialog.findViewById(R.id.done); final ColorPicker picker = (ColorPicker) dialog .findViewById(R.id.picker); picker.setColor(color);// To set the old selected color picker.setOldCenterColor(color); done.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { color = picker.getColor();// To get the color text.setTextColor(color);// Change text color dialog.dismiss(); // Close the dialog } }); } }); } }