├── .gitignore ├── .travis.yml ├── CHANGELOG.md ├── README.md ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── flask │ │ └── colorpicker │ │ └── sample │ │ └── ApplicationTest.java │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── com │ │ └── flask │ │ └── colorpicker │ │ └── sample │ │ ├── PrefsActivity.java │ │ ├── SampleActivity.java │ │ ├── SampleActivity2.java │ │ └── SampleActivity3.java │ └── res │ ├── drawable-hdpi │ ├── ic_github_circle_black_24dp.png │ └── ic_launcher.png │ ├── drawable-mdpi │ ├── ic_github_circle_black_24dp.png │ └── ic_launcher.png │ ├── drawable-xhdpi │ ├── ic_github_circle_black_24dp.png │ └── ic_launcher.png │ ├── drawable-xxhdpi │ ├── ic_github_circle_black_24dp.png │ └── ic_launcher.png │ ├── drawable-xxxhdpi │ ├── ic_github_circle_black_24dp.png │ └── ic_launcher.png │ ├── drawable │ ├── background.xml │ ├── ic_launcher.png │ └── tile.png │ ├── layout-land │ └── fragment_adapted_dialog.xml │ ├── layout │ ├── activity_sample.xml │ ├── activity_sample2.xml │ ├── activity_sample3.xml │ ├── fragment_adapted_dialog.xml │ └── fragment_sample_activity3.xml │ ├── menu │ └── menu_sample_activity3.xml │ ├── values-w820dp │ └── dimens.xml │ ├── values │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml │ └── xml │ └── prefs.xml ├── build.gradle ├── gradle ├── local.properties └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── library ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── flask │ │ └── colorpicker │ │ └── ApplicationTest.java │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── com │ │ └── flask │ │ └── colorpicker │ │ ├── ColorCircle.java │ │ ├── ColorCircleDrawable.java │ │ ├── ColorPickerPreference.java │ │ ├── ColorPickerView.java │ │ ├── OnColorChangedListener.java │ │ ├── OnColorSelectedListener.java │ │ ├── Utils.java │ │ ├── builder │ │ ├── ColorPickerClickListener.java │ │ ├── ColorPickerDialogBuilder.java │ │ ├── ColorWheelRendererBuilder.java │ │ └── PaintBuilder.java │ │ ├── renderer │ │ ├── AbsColorWheelRenderer.java │ │ ├── ColorWheelRenderOption.java │ │ ├── ColorWheelRenderer.java │ │ ├── FlowerColorWheelRenderer.java │ │ └── SimpleColorWheelRenderer.java │ │ └── slider │ │ ├── AbsCustomSlider.java │ │ ├── AlphaSlider.java │ │ ├── LightnessSlider.java │ │ └── OnValueChangedListener.java │ └── res │ ├── layout │ ├── color_edit.xml │ ├── color_preview.xml │ ├── color_selector.xml │ └── color_widget.xml │ └── values │ ├── attrs.xml │ ├── dimens.xml │ └── styles.xml ├── screenshot ├── screenshot.png ├── screenshot2.png ├── screenshot3.png └── screenshot4.png └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/ 5 | .DS_Store 6 | /build 7 | /captures 8 | gradle.properties 9 | .externalNativeBuild 10 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: android 2 | 3 | sudo: false 4 | 5 | android: 6 | components: 7 | - build-tools-26.0.2 8 | - android-26 9 | - extra-google-m2repository 10 | - extra-android-m2repository 11 | 12 | licenses: 13 | - android-sdk-license-.+ 14 | 15 | script: ./gradlew clean build --info 16 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | CHANGELOG 2 | ------------ 3 | 4 | - some performance improvement 5 | - add ColorPickerPerference for Preference xml 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Color Picker 2 | ------------- 3 | [![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-Color%20Picker-brightgreen.svg?style=flat)](http://android-arsenal.com/details/1/1693) 4 | ![https://img.shields.io/github/tag/QuadFlask/colorpicker.svg?label=maven](https://img.shields.io/github/tag/QuadFlask/colorpicker.svg?label=maven) 5 | 6 | ![icon](https://github.com/QuadFlask/colorpicker/blob/master/app/src/main/res/drawable-xxxhdpi/ic_launcher.png) 7 | 8 | simple android color picker with color wheel and lightness bar. 9 | 10 | [Play Store link](https://play.google.com/store/apps/details?id=com.flask.colorpicker.sample) 11 | 12 | ## Demo video 13 | 14 | [Youtube](https://youtu.be/MwWi9X7eqNI) 15 | 16 | 17 | ## Screenshot 18 | 19 | ### WHEEL_TYPE.FLOWER 20 | ![screenshot3.png](https://github.com/QuadFlask/colorpicker/blob/master/screenshot/screenshot3.png) 21 | 22 | ### WHEEL_TYPE.CIRCLE 23 | ![screenshot.png](https://github.com/QuadFlask/colorpicker/blob/master/screenshot/screenshot.png) 24 | 25 | 26 | ## How to add dependency? 27 | 28 | This library is not released in Maven Central, but instead you can use [JitPack](https://jitpack.io) 29 | 30 | add remote maven url in `allprojects.repositories` 31 | 32 | ```groovy 33 | allprojects { 34 | repositories { 35 | maven { url "https://jitpack.io" } 36 | } 37 | } 38 | ``` 39 | 40 | then add a library dependency 41 | 42 | ```groovy 43 | dependencies { 44 | implementation 'com.github.QuadFlask:colorpicker:0.0.15' 45 | } 46 | ``` 47 | 48 | or, you can manually download `aar` and put into your project's `libs` directory. 49 | 50 | and add dependency 51 | 52 | ```groovy 53 | dependencies { 54 | compile(name:'[arrFileName]', ext:'aar') 55 | } 56 | ``` 57 | 58 | > check out latest version at [releases](https://github.com/QuadFlask/colorpicker/releases) 59 | 60 | ## Usage 61 | As a dialog 62 | ```java 63 | ColorPickerDialogBuilder 64 | .with(context) 65 | .setTitle("Choose color") 66 | .initialColor(currentBackgroundColor) 67 | .wheelType(ColorPickerView.WHEEL_TYPE.FLOWER) 68 | .density(12) 69 | .setOnColorSelectedListener(new OnColorSelectedListener() { 70 | @Override 71 | public void onColorSelected(int selectedColor) { 72 | toast("onColorSelected: 0x" + Integer.toHexString(selectedColor)); 73 | } 74 | }) 75 | .setPositiveButton("ok", new ColorPickerClickListener() { 76 | @Override 77 | public void onClick(DialogInterface dialog, int selectedColor, Integer[] allColors) { 78 | changeBackgroundColor(selectedColor); 79 | } 80 | }) 81 | .setNegativeButton("cancel", new DialogInterface.OnClickListener() { 82 | @Override 83 | public void onClick(DialogInterface dialog, int which) { 84 | } 85 | }) 86 | .build() 87 | .show(); 88 | ``` 89 | As a widget 90 | ```xml 91 | 102 | 103 | 108 | 109 | 114 | ``` 115 | 116 | 117 | ## To do 118 | 119 | * gradle support 120 | * performance improvement 121 | * refactoring 122 | 123 | 124 | ## License 125 | 126 | ``` 127 | Copyright 2014-2017 QuadFlask 128 | 129 | Licensed under the Apache License, Version 2.0 (the "License"); 130 | you may not use this file except in compliance with the License. 131 | You may obtain a copy of the License at 132 | 133 | http://www.apache.org/licenses/LICENSE-2.0 134 | 135 | Unless required by applicable law or agreed to in writing, software 136 | distributed under the License is distributed on an "AS IS" BASIS, 137 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 138 | See the License for the specific language governing permissions and 139 | limitations under the License. 140 | ``` 141 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 29 5 | buildToolsVersion "29.0.0" 6 | 7 | defaultConfig { 8 | applicationId "com.flask.colorpicker.sample" 9 | minSdkVersion 14 10 | targetSdkVersion 29 11 | versionCode 10 12 | versionName "1.0.10" 13 | 14 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 15 | } 16 | // signingConfigs { 17 | // release { 18 | // storeFile file(RELEASE_STORE_FILE) 19 | // storePassword RELEASE_STORE_PASSWORD 20 | // keyAlias RELEASE_KEY_ALIAS 21 | // keyPassword RELEASE_KEY_PASSWORD 22 | // } 23 | // } 24 | // buildTypes { 25 | // release { 26 | // minifyEnabled false 27 | // proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 28 | // signingConfig signingConfigs.release 29 | // } 30 | // } 31 | } 32 | 33 | dependencies { 34 | implementation fileTree(dir: 'libs', include: ['*.jar']) 35 | implementation project(":library") 36 | implementation 'androidx.appcompat:appcompat:1.1.0' 37 | implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta3' 38 | implementation 'com.google.android.material:material:1.0.0' 39 | } 40 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/flask/Documents/android-sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /app/src/androidTest/java/com/flask/colorpicker/sample/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.flask.colorpicker.sample; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /app/src/main/java/com/flask/colorpicker/sample/PrefsActivity.java: -------------------------------------------------------------------------------- 1 | package com.flask.colorpicker.sample; 2 | 3 | import android.os.Bundle; 4 | import android.preference.PreferenceActivity; 5 | 6 | public class PrefsActivity extends PreferenceActivity { 7 | @Override 8 | public void onCreate(Bundle savedInstanceState) { 9 | super.onCreate(savedInstanceState); 10 | 11 | addPreferencesFromResource(R.xml.prefs); 12 | } 13 | } -------------------------------------------------------------------------------- /app/src/main/java/com/flask/colorpicker/sample/SampleActivity.java: -------------------------------------------------------------------------------- 1 | package com.flask.colorpicker.sample; 2 | 3 | import android.content.Context; 4 | import android.content.DialogInterface; 5 | import android.content.Intent; 6 | import android.net.Uri; 7 | import android.os.Bundle; 8 | import androidx.annotation.Nullable; 9 | import androidx.fragment.app.DialogFragment; 10 | import androidx.core.content.ContextCompat; 11 | import androidx.appcompat.app.AppCompatActivity; 12 | import androidx.appcompat.app.AppCompatDialogFragment; 13 | import android.util.Log; 14 | import android.view.LayoutInflater; 15 | import android.view.View; 16 | import android.view.ViewGroup; 17 | import android.widget.Toast; 18 | 19 | import com.flask.colorpicker.ColorPickerView; 20 | import com.flask.colorpicker.OnColorChangedListener; 21 | import com.flask.colorpicker.OnColorSelectedListener; 22 | import com.flask.colorpicker.builder.ColorPickerClickListener; 23 | import com.flask.colorpicker.builder.ColorPickerDialogBuilder; 24 | 25 | public class SampleActivity extends AppCompatActivity { 26 | private View root; 27 | private int currentBackgroundColor = 0xffffffff; 28 | 29 | @Override 30 | protected void onCreate(Bundle savedInstanceState) { 31 | super.onCreate(savedInstanceState); 32 | setContentView(R.layout.activity_sample); 33 | root = findViewById(R.id.color_screen); 34 | changeBackgroundColor(currentBackgroundColor); 35 | 36 | findViewById(R.id.btn_dialog).setOnClickListener(new View.OnClickListener() { 37 | @Override 38 | public void onClick(View v) { 39 | final Context context = SampleActivity.this; 40 | 41 | ColorPickerDialogBuilder 42 | .with(context) 43 | .setTitle(R.string.color_dialog_title) 44 | .initialColor(currentBackgroundColor) 45 | .wheelType(ColorPickerView.WHEEL_TYPE.FLOWER) 46 | .density(12) 47 | .setOnColorChangedListener(new OnColorChangedListener() { 48 | @Override 49 | public void onColorChanged(int selectedColor) { 50 | // Handle on color change 51 | Log.d("ColorPicker", "onColorChanged: 0x" + Integer.toHexString(selectedColor)); 52 | } 53 | }) 54 | .setOnColorSelectedListener(new OnColorSelectedListener() { 55 | @Override 56 | public void onColorSelected(int selectedColor) { 57 | toast("onColorSelected: 0x" + Integer.toHexString(selectedColor)); 58 | } 59 | }) 60 | .setPositiveButton("ok", new ColorPickerClickListener() { 61 | @Override 62 | public void onClick(DialogInterface dialog, int selectedColor, Integer[] allColors) { 63 | changeBackgroundColor(selectedColor); 64 | if (allColors != null) { 65 | StringBuilder sb = null; 66 | 67 | for (Integer color : allColors) { 68 | if (color == null) 69 | continue; 70 | if (sb == null) 71 | sb = new StringBuilder("Color List:"); 72 | sb.append("\r\n#" + Integer.toHexString(color).toUpperCase()); 73 | } 74 | 75 | if (sb != null) 76 | Toast.makeText(getApplicationContext(), sb.toString(), Toast.LENGTH_SHORT).show(); 77 | } 78 | } 79 | }) 80 | .setNegativeButton("cancel", new DialogInterface.OnClickListener() { 81 | @Override 82 | public void onClick(DialogInterface dialog, int which) { 83 | } 84 | }) 85 | .showColorEdit(true) 86 | .setColorEditTextColor(ContextCompat.getColor(SampleActivity.this, android.R.color.holo_blue_bright)) 87 | .build() 88 | .show(); 89 | } 90 | }); 91 | findViewById(R.id.btn_adapted_dialog).setOnClickListener(new View.OnClickListener() { 92 | @Override 93 | public void onClick(View v) { 94 | DialogFragment dialogFragment = new AdaptedDialogFragment(); 95 | dialogFragment.show(getSupportFragmentManager(), "adapted_dialog"); 96 | } 97 | }); 98 | findViewById(R.id.btn_prefs).setOnClickListener(new View.OnClickListener() { 99 | @Override 100 | public void onClick(View v) { 101 | startActivity(new Intent(SampleActivity.this, PrefsActivity.class)); 102 | } 103 | }); 104 | findViewById(R.id.btn_view).setOnClickListener(new View.OnClickListener() { 105 | @Override 106 | public void onClick(View v) { 107 | Intent intent = new Intent(SampleActivity.this, SampleActivity2.class); 108 | startActivity(intent); 109 | } 110 | }); 111 | findViewById(R.id.btn_github).setOnClickListener(new View.OnClickListener() { 112 | @Override 113 | public void onClick(View v) { 114 | String url = "https://github.com/QuadFlask/colorpicker"; 115 | Intent intent = new Intent(Intent.ACTION_VIEW); 116 | intent.setData(Uri.parse(url)); 117 | startActivity(intent); 118 | } 119 | }); 120 | findViewById(R.id.btn_fragment).setOnClickListener(new View.OnClickListener() { 121 | @Override 122 | public void onClick(View view) { 123 | final Intent intent = new Intent(SampleActivity.this, SampleActivity3.class); 124 | startActivity(intent); 125 | } 126 | }); 127 | } 128 | 129 | private void changeBackgroundColor(int selectedColor) { 130 | currentBackgroundColor = selectedColor; 131 | root.setBackgroundColor(selectedColor); 132 | } 133 | 134 | private void toast(String text) { 135 | Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); 136 | } 137 | 138 | public static class AdaptedDialogFragment extends AppCompatDialogFragment { 139 | public AdaptedDialogFragment() { 140 | } 141 | 142 | @Nullable 143 | @Override 144 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 145 | return inflater.inflate(R.layout.fragment_adapted_dialog, container); 146 | } 147 | } 148 | } 149 | -------------------------------------------------------------------------------- /app/src/main/java/com/flask/colorpicker/sample/SampleActivity2.java: -------------------------------------------------------------------------------- 1 | package com.flask.colorpicker.sample; 2 | 3 | import android.os.Bundle; 4 | import androidx.appcompat.app.AppCompatActivity; 5 | import android.util.Log; 6 | import android.widget.Toast; 7 | 8 | import com.flask.colorpicker.ColorPickerView; 9 | import com.flask.colorpicker.OnColorChangedListener; 10 | import com.flask.colorpicker.OnColorSelectedListener; 11 | 12 | public class SampleActivity2 extends AppCompatActivity { 13 | 14 | @Override 15 | protected void onCreate(Bundle savedInstanceState) { 16 | super.onCreate(savedInstanceState); 17 | setContentView(R.layout.activity_sample2); 18 | 19 | ColorPickerView colorPickerView = findViewById(R.id.color_picker_view); 20 | colorPickerView.addOnColorChangedListener(new OnColorChangedListener() { 21 | @Override public void onColorChanged(int selectedColor) { 22 | // Handle on color change 23 | Log.d("ColorPicker", "onColorChanged: 0x" + Integer.toHexString(selectedColor)); 24 | } 25 | }); 26 | colorPickerView.addOnColorSelectedListener(new OnColorSelectedListener() { 27 | @Override 28 | public void onColorSelected(int selectedColor) { 29 | Toast.makeText( 30 | SampleActivity2.this, 31 | "selectedColor: " + Integer.toHexString(selectedColor).toUpperCase(), 32 | Toast.LENGTH_SHORT).show(); 33 | } 34 | }); 35 | } 36 | } -------------------------------------------------------------------------------- /app/src/main/java/com/flask/colorpicker/sample/SampleActivity3.java: -------------------------------------------------------------------------------- 1 | package com.flask.colorpicker.sample; 2 | 3 | import android.os.Bundle; 4 | import androidx.fragment.app.Fragment; 5 | import androidx.fragment.app.FragmentManager; 6 | import androidx.fragment.app.FragmentPagerAdapter; 7 | import androidx.fragment.app.FragmentStatePagerAdapter; 8 | import androidx.viewpager.widget.PagerAdapter; 9 | import androidx.viewpager.widget.ViewPager; 10 | import androidx.appcompat.app.AppCompatActivity; 11 | import androidx.appcompat.widget.Toolbar; 12 | import android.view.LayoutInflater; 13 | import android.view.Menu; 14 | import android.view.MenuItem; 15 | import android.view.View; 16 | import android.view.ViewGroup; 17 | import android.widget.TextView; 18 | 19 | public class SampleActivity3 extends AppCompatActivity { 20 | 21 | /** 22 | * The {@link PagerAdapter} that will provide 23 | * fragments for each of the sections. We use a 24 | * {@link FragmentPagerAdapter} derivative, which will keep every 25 | * loaded fragment in memory. If this becomes too memory intensive, it 26 | * may be best to switch to a 27 | * {@link FragmentStatePagerAdapter}. 28 | */ 29 | private SectionsPagerAdapter mSectionsPagerAdapter; 30 | 31 | /** 32 | * The {@link ViewPager} that will host the section contents. 33 | */ 34 | private ViewPager mViewPager; 35 | 36 | @Override 37 | protected void onCreate(Bundle savedInstanceState) { 38 | super.onCreate(savedInstanceState); 39 | setContentView(R.layout.activity_sample3); 40 | 41 | Toolbar toolbar = findViewById(R.id.toolbar); 42 | setSupportActionBar(toolbar); 43 | // Create the adapter that will return a fragment for each of the three 44 | // primary sections of the activity. 45 | mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager()); 46 | 47 | // Set up the ViewPager with the sections adapter. 48 | mViewPager = findViewById(R.id.container); 49 | mViewPager.setAdapter(mSectionsPagerAdapter); 50 | } 51 | 52 | @Override 53 | public boolean onCreateOptionsMenu(Menu menu) { 54 | // Inflate the menu; this adds items to the action bar if it is present. 55 | getMenuInflater().inflate(R.menu.menu_sample_activity3, menu); 56 | return true; 57 | } 58 | 59 | @Override 60 | public boolean onOptionsItemSelected(MenuItem item) { 61 | // Handle action bar item clicks here. The action bar will 62 | // automatically handle clicks on the Home/Up button, so long 63 | // as you specify a parent activity in AndroidManifest.xml. 64 | int id = item.getItemId(); 65 | 66 | //noinspection SimplifiableIfStatement 67 | if (id == R.id.action_settings) { 68 | return true; 69 | } 70 | 71 | return super.onOptionsItemSelected(item); 72 | } 73 | 74 | /** 75 | * A placeholder fragment containing a simple view. 76 | */ 77 | public static class PlaceholderFragment extends Fragment { 78 | /** 79 | * The fragment argument representing the section number for this 80 | * fragment. 81 | */ 82 | private static final String ARG_SECTION_NUMBER = "section_number"; 83 | 84 | public PlaceholderFragment() { 85 | } 86 | 87 | /** 88 | * Returns a new instance of this fragment for the given section 89 | * number. 90 | */ 91 | public static PlaceholderFragment newInstance(int sectionNumber) { 92 | PlaceholderFragment fragment = new PlaceholderFragment(); 93 | Bundle args = new Bundle(); 94 | args.putInt(ARG_SECTION_NUMBER, sectionNumber); 95 | fragment.setArguments(args); 96 | return fragment; 97 | } 98 | 99 | @Override 100 | public View onCreateView(LayoutInflater inflater, ViewGroup container, 101 | Bundle savedInstanceState) { 102 | View rootView = inflater.inflate(R.layout.fragment_sample_activity3, container, false); 103 | TextView textView = rootView.findViewById(R.id.section_label); 104 | textView.setText(getString(R.string.section_format, getArguments().getInt(ARG_SECTION_NUMBER))); 105 | return rootView; 106 | } 107 | } 108 | 109 | /** 110 | * A {@link FragmentPagerAdapter} that returns a fragment corresponding to 111 | * one of the sections/tabs/pages. 112 | */ 113 | public class SectionsPagerAdapter extends FragmentPagerAdapter { 114 | 115 | public SectionsPagerAdapter(FragmentManager fm) { 116 | super(fm); 117 | } 118 | 119 | @Override 120 | public Fragment getItem(int position) { 121 | // getItem is called to instantiate the fragment for the given page. 122 | // Return a PlaceholderFragment (defined as a static inner class below). 123 | return PlaceholderFragment.newInstance(position + 1); 124 | } 125 | 126 | @Override 127 | public int getCount() { 128 | // Show 3 total pages. 129 | return 3; 130 | } 131 | 132 | @Override 133 | public CharSequence getPageTitle(int position) { 134 | switch (position) { 135 | case 0: 136 | return "SECTION 1"; 137 | case 1: 138 | return "SECTION 2"; 139 | case 2: 140 | return "SECTION 3"; 141 | } 142 | return null; 143 | } 144 | } 145 | } 146 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_github_circle_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuadFlask/colorpicker/ef73ced2172b37f0cbc3259eefd5770b67635b6b/app/src/main/res/drawable-hdpi/ic_github_circle_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuadFlask/colorpicker/ef73ced2172b37f0cbc3259eefd5770b67635b6b/app/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_github_circle_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuadFlask/colorpicker/ef73ced2172b37f0cbc3259eefd5770b67635b6b/app/src/main/res/drawable-mdpi/ic_github_circle_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuadFlask/colorpicker/ef73ced2172b37f0cbc3259eefd5770b67635b6b/app/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_github_circle_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuadFlask/colorpicker/ef73ced2172b37f0cbc3259eefd5770b67635b6b/app/src/main/res/drawable-xhdpi/ic_github_circle_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuadFlask/colorpicker/ef73ced2172b37f0cbc3259eefd5770b67635b6b/app/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_github_circle_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuadFlask/colorpicker/ef73ced2172b37f0cbc3259eefd5770b67635b6b/app/src/main/res/drawable-xxhdpi/ic_github_circle_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuadFlask/colorpicker/ef73ced2172b37f0cbc3259eefd5770b67635b6b/app/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_github_circle_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuadFlask/colorpicker/ef73ced2172b37f0cbc3259eefd5770b67635b6b/app/src/main/res/drawable-xxxhdpi/ic_github_circle_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuadFlask/colorpicker/ef73ced2172b37f0cbc3259eefd5770b67635b6b/app/src/main/res/drawable-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/background.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuadFlask/colorpicker/ef73ced2172b37f0cbc3259eefd5770b67635b6b/app/src/main/res/drawable/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuadFlask/colorpicker/ef73ced2172b37f0cbc3259eefd5770b67635b6b/app/src/main/res/drawable/tile.png -------------------------------------------------------------------------------- /app/src/main/res/layout-land/fragment_adapted_dialog.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 18 | 19 | 24 | 25 | 30 | 31 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_sample.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 14 | 15 | 23 | 24 | 31 |