Android puede hacer que el selector de color cambie el color del componente con unas simples líneas de código, para que pueda realizar fácilmente la función de skinning.


Recomiendo crear un nuevo proyecto o Moudle para probar primero.

Prefacio

Para ser honesto, al principio no entendía cómo usar este marco. Después de descargar y ver el código fuente del autor, sabía cómo usarlo. No digas tonterías, solo ve al tema, echemos un vistazo al efecto.
Inserte la descripción de la imagen aquí

Paso 1: importar dependencias

Si desea conocer el código fuente y cómo implementar la función, puede ir a la dirección fuente .
Las dependencias de importación son las siguientes:

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

Paso 2: el código principal

Para la conveniencia de la demostración, el código está simplificado y el código es el siguiente:

Primero de todo: para heredar el método ColorDialog.OnColorSelectedListener, como se muestra en la figura: el
Inserte la descripción de la imagen aquí
código es el siguiente:

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);
        }
    }
}

El código principal es el anterior y el tipo de selección de color se adjunta a continuación:

<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>

Ubicación:
Inserte la descripción de la imagen aquí
finalmente, echemos un vistazo al efecto simple:
Inserte la descripción de la imagen aquí
si hay algo más que no entiende, puede mirar el código fuente, descargarlo usted mismo y configurarlo en 0 puntos (CSDN ahora puede configurar 0 puntos sin crecimiento automático o es muy fácil de usar), la dirección del código fuente Como sigue: la
dirección del código fuente es la siguiente

Supongo que te gusta

Origin blog.csdn.net/qq_45137584/article/details/111294998
Recomendado
Clasificación