Android颜色选择器
来源:互联网 发布:树莓派安装unity3d 编辑:程序博客网 时间:2024/05/24 00:48
最近要做画板的软件,需要为画笔选择颜色,然后根据滑动的轨迹进行画图,本着不重复早轮子的精神(主要是不会),在GitHub上搜了一下,找到了一个不错的今天记录一下。
先看效果图:
动态的:
我是用弹出Dialog的形式进行颜色选择,也可用其他方式使用。
github链接:
https://github.com/LarsWerkman/HoloColorPicker
首先在app 下gradle添加依赖。
compile 'com.larswerkman:HoloColorPicker:1.5'
主要的代码
import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.DialogFragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.view.Window;import android.widget.ImageButton;import android.widget.TextView;import com.larswerkman.holocolorpicker.ColorPicker;import com.larswerkman.holocolorpicker.OpacityBar;import com.larswerkman.holocolorpicker.SVBar;import com.tianzl.photofilter.R;/** * 颜色选择器Dialog * Created by tianzl on 2017/9/1. */public class ColorPickerDialog extends DialogFragment { private ImageButton ibBack; private ImageButton ibEnsure; private TextView tvTitle; private ColorPicker colorPicker; private SVBar svBar; private OpacityBar opacityBar; private TextView tvExamples; private int color; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE); View view=inflater.inflate(R.layout.dialog_color_picker,container,false); initView(view); initData(); initEvent(); return view; } private void initData() { colorPicker.addSVBar(svBar); colorPicker.addOpacityBar(opacityBar); tvTitle.setText("颜色选择器"); } private void initView(View view) { ibBack=view.findViewById(R.id.bar_title_left); ibEnsure=view.findViewById(R.id.bar_title_right); tvTitle=view.findViewById(R.id.bar_title_title); colorPicker=view.findViewById(R.id.dialog_color_picker_colorPicker); svBar=view.findViewById(R.id.dialog_color_picker_svbar); opacityBar=view.findViewById(R.id.dialog_color_picker_opacity); tvExamples=view.findViewById(R.id.dialog_color_picker_examples); } private void initEvent() { colorPicker.setOnColorChangedListener(new ColorPicker.OnColorChangedListener() { @Override public void onColorChanged(int colors) { tvExamples.setTextColor(colors); color=colors; } }); ibBack.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { listener.onBack(); dismiss(); } }); ibEnsure.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { listener.onEnsure(color); dismiss(); } }); } public interface OnColorListener{ void onBack(); void onEnsure(int color); } private OnColorListener listener; public void setOnColorChangeListenter(OnColorListener listener){ this.listener=listener; }}
我只添加了两个控制器 一个是颜色的深度一个是颜色的透明度:其他的还有几个就不全部演示了,用法都一样,github链接上都有。
布局文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:paddingLeft="10dp" android:paddingRight="10dp" android:layout_width="match_parent" android:layout_height="wrap_content"> <include android:id="@+id/dialog_color_picker_title" android:layout_height="50dp" layout="@layout/title_bar" android:layout_width="match_parent" /> <View android:layout_below="@+id/dialog_color_picker_title" style="@style/horizontal_divider_e3"/> <com.larswerkman.holocolorpicker.ColorPicker android:id="@+id/dialog_color_picker_colorPicker" android:layout_below="@+id/dialog_color_picker_title" android:layout_centerInParent="true" android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/dialog_color_picker_tv_sv" android:text="@string/color_depth" android:layout_below="@+id/dialog_color_picker_colorPicker" android:gravity="center_vertical" android:layout_width="100dp" android:layout_height="30dp" /> <com.larswerkman.holocolorpicker.SVBar android:id="@+id/dialog_color_picker_svbar" android:layout_toRightOf="@+id/dialog_color_picker_tv_sv" android:layout_below="@+id/dialog_color_picker_colorPicker" android:layout_width="match_parent" android:layout_height="30dp"/> <TextView android:id="@+id/dialog_color_picker_tv_opacity" android:text="@string/transparency" android:layout_below="@+id/dialog_color_picker_svbar" android:gravity="center_vertical" android:layout_width="100dp" android:layout_height="30dp" /> <com.larswerkman.holocolorpicker.OpacityBar android:id="@+id/dialog_color_picker_opacity" android:layout_toRightOf="@+id/dialog_color_picker_tv_opacity" android:layout_below="@+id/dialog_color_picker_svbar" android:layout_width="match_parent" android:layout_height="30dp"/> <TextView android:id="@+id/dialog_color_picker_examples" android:text="@string/examples_text" android:textSize="40dp" android:layout_marginTop="5dp" android:layout_below="@+id/dialog_color_picker_opacity" android:layout_centerHorizontal="true" android:layout_width="wrap_content" android:layout_height="wrap_content" /></RelativeLayout>
title_bar.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="80dp"> <ImageButton android:id="@+id/bar_title_left" android:src="@mipmap/back_1" android:background="@android:color/transparent" style="@style/horizontal_mean" /> <TextView android:id="@+id/bar_title_title" android:text="@string/dialog_folder_title" android:gravity="center" android:textSize="20sp" style="@style/horizontal_mean" android:layout_weight="5"/> <ImageButton android:id="@+id/bar_title_right" android:src="@mipmap/ensure" android:background="@android:color/transparent" style="@style/horizontal_mean" /></LinearLayout>
最后在Activity中调用一下方法即可:
/** * 选择颜色的dialog */ public void showPaintColorDialog(){ ColorPickerDialog colorPickerDialog=new ColorPickerDialog(); colorPickerDialog.show(getSupportFragmentManager(),"dialog_color"); colorPickerDialog.setOnColorChangeListenter(new ColorPickerDialog.OnColorListener() { @Override public void onEnsure(int color) { if (color==0){ surfaceView.setColor(Color.BLACK); } surfaceView.setColor(color); paintColor=color; } @Override public void onBack() { } }); }
OK,结束!
阅读全文
0 0
- Android颜色选择器
- Android颜色选择器
- android字体颜色选择器
- Android的颜色选择器
- Android 颜色选择器
- Android 颜色选择器(ColorPicker)
- android 颜色选择器
- android颜色选择器
- Android颜色选择器
- Android 颜色选择器(ColorPicker)
- Android 颜色选择器(ColorPicker)
- Android颜色选择器
- android颜色选择器
- Android颜色选择器
- android 背景图片选择器和颜色选择器
- Android颜色选择器selector介绍
- Android开发之颜色选择器
- android studio TextView颜色选择器
- Elasticsearch集群Linux搭建
- 预处理入库的方式
- python zip和tar两种格式的压缩与解压
- Parse 和 TryParse
- select a method for export 各项的意思
- Android颜色选择器
- 办公不用愁,在线pdf转换器帮你提升工作效率
- 第1章-如何使用本书—零死角玩转STM32-F429系列
- 解决:javac: 无效的目标发行版: 1.8
- ios中几种跳转方式,普通,和StoryBoard跳转
- 基于UWB技术的隧道人员定位系统分析
- 设计模式的几个原则
- 51nod 1405 树的距离之和
- HDU 5493 线段树