ColorPickerPreference是一个非常简单的颜色选择框架,相比ColorPickerView下面还有一个透明度选择栏,使得颜色的设置更加丰富,下面是一个非常简单的小列子:
首先,下载Github上面的ColorPickerPreference框架:https://github.com/attenzione/android-ColorPickerPreference
新建一个工程添加ColorPickerPreference依赖,便可直接使用选择器;
MainActivity:
public class MainActivity extends AppCompatActivity implements ColorPickerDialog.OnColorChangedListener { private FrameLayout frameLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); frameLayout = (FrameLayout) findViewById(R.id.frag); } public void btnClick(View view){ /** * 第二个参数为打开颜色选择器时的初始颜色 */ ColorPickerDialog colorPickerDialog = new ColorPickerDialog(this,0xf00ff00); colorPickerDialog.setOnColorChangedListener(this);//调用颜色更改接口 //是否显示透明度状态栏 colorPickerDialog.setAlphaSliderVisible(true); //是否显示透明度的值 colorPickerDialog.setHexValueEnabled(true); colorPickerDialog.show(); } @Override public void onColorChanged(int color) { frameLayout.setBackgroundColor(color); } }Xml:
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/frag" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.wls.colorpicker.MainActivity"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="背景色" android:onClick="btnClick" android:layout_gravity="center"/> </FrameLayout>ColorPickerPreference中有两个属性:setAlphaSliderVisible和setHexValueEnabled分别表示是否显示透明度状态栏和透明度的值。
效果图: