android简单几句代码就能使颜色选择器改变组件颜色,竟然轻松就能实现换肤功能?


我建议在先自己先新建一个项目或者Moudle用于测试。

前言

说实话开始我也没怎么看懂这个框架怎么使用,在下载了查看了作者的源码之后才知道怎么使用它,废话不多说,直接步入正题,先看一下效果吧。
在这里插入图片描述

第一步:导入依赖

如果想了解源码和功能怎么实现的可以去源码地址
导入依赖如下:

implementation'com.github.kizitonwose.colorpreference:core:1.1.0'

第二步:主要代码

为了演示方便,代码一切从简,代码如下:

首先:要继承ColorDialog.OnColorSelectedListener方法,如图所示:
在这里插入图片描述
代码如下:

import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import androidx.appcompat.app.AppCompatActivity;

import com.kizitonwose.colorpreference.ColorDialog;
import com.kizitonwose.colorpreference.ColorShape;

public class MainActivity extends AppCompatActivity implements ColorDialog.OnColorSelectedListener {
    private Button button;
    @SuppressLint("ResourceType")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button=findViewById(R.id.button);
    }

    public void colorShare(View view){
        new ColorDialog.Builder(this)
                .setColorShape(ColorShape.SQUARE) //SQUARE 正方形  CIRCLE圆形
                .setColorChoices(R.array.color_choices) //自定义颜色
                .setNumColumns(5)       //设置每行颜色选择的个数
                .setTag("TAG")        //与下方的onColorSelected方法想呼应
                .show();
    }

    @Override
    public void onColorSelected(int newColor, String tag) {
        if(tag=="TAG"){
            button.setBackgroundColor(newColor);
        }
    }
}

主要代码如上,下面附上颜色的选择种类:

<string-array name="color_choices">
        <item>#f44336</item>
        <item>#e91e63</item>
        <item>#9c27b0</item>
        <item>#673ab7</item>
        <item>#3f51b5</item>
        <item>#2196f3</item>
        <item>#03a9f4</item>
        <item>#00bcd4</item>
        <item>#009688</item>
        <item>#4caf50</item>
        <item>#8bc34a</item>
        <item>#cddc39</item>
        <item>#ffeb3b</item>
        <item>#ffc107</item>
        <item>#ff9800</item>
        <item>#ff5722</item>
        <item>#795548</item>
        <item>#9e9e9e</item>
        <item>#607d8b</item>
    </string-array>

摆放位置:
在这里插入图片描述
最后我们看一下简单的效果吧:
在这里插入图片描述
如果还有什么不明白可以看一下源码,自行下载,设置为0积分(CSDN现在可以设置0积分不自动增长还是很人性化的),源码地址如下:
源码地址如下

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值