¿Transmisión en vivo de imitación de Android como función de efectos especiales?

En primer lugar, también me refiero al código de otras personas en el código, pero todavía hay algunas modificaciones, porque al llamar al código de otras personas, también se encontraron algunos problemas y errores, no hay mucha tontería, solo vaya al código.
Las reglas antiguas, la imagen de arriba: el
Inserte la descripción de la imagen aquí
primer paso, importar el marco requerido:

           implementation 'com.github.kaisengao:KsgLikeView:1.0.1'

El segundo paso es configurar la interfaz de usuario. La interfaz de usuario general es relativamente simple. Com.kaisengao.likeview.like.KsgLikeView debe implementarse después del primer paso:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <com.kaisengao.likeview.like.KsgLikeView
        android:id="@+id/live_view"
        android:layout_width="120dp"
        android:layout_height="0dp"
        android:layout_marginTop="100dp"
        app:ksg_default_image="@drawable/heart0"
        app:ksg_enter_duration="1500"
        app:ksg_curve_duration="4500"
        app:layout_constraintDimensionRatio="H,1:4"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent">

    </com.kaisengao.likeview.like.KsgLikeView>

    <Button
        android:id="@+id/live_view_single"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="发送一条"
        android:textColor="@android:color/black"
        android:textSize="14sp"
        app:layout_constraintLeft_toLeftOf="@id/live_view"
        app:layout_constraintRight_toRightOf="@id/live_view"
        app:layout_constraintTop_toBottomOf="@id/live_view"/>

    <Button
        android:id="@+id/live_view_more"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="发送一堆"
        android:textColor="@android:color/black"
        android:textSize="14sp"
        app:layout_constraintLeft_toLeftOf="@id/live_view"
        app:layout_constraintRight_toRightOf="@id/live_view"
        app:layout_constraintTop_toBottomOf="@id/live_view_single"/>

</androidx.constraintlayout.widget.ConstraintLayout>

Paso 3: El código java principal. El código general es relativamente simple y fácil de entender. Si no lo entiende, puede preguntarme. El código es el siguiente:

import android.os.Handler;
import android.os.Looper;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;

import androidx.appcompat.app.AppCompatActivity;

import com.kaisengao.likeview.like.KsgLikeView;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    
    


    private KsgLikeView mLikeView;

    private Button mMore;
    static  int i=0;


    Handler mhandler=new Handler(Looper.getMainLooper());

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        initView();
    }

    private void initView() {
    
    

        mLikeView = findViewById(R.id.live_view);
        findViewById(R.id.live_view_single).setOnClickListener(this);
        mMore=findViewById(R.id.live_view_more);
        mMore .setOnClickListener(this);

        mLikeView.addLikeImage(R.drawable.heart0);
        mLikeView.addLikeImage(R.drawable.heart1);
        mLikeView.addLikeImage(R.drawable.heart2);
        mLikeView.addLikeImage(R.drawable.heart3);
        mLikeView.addLikeImage(R.drawable.heart4);
        mLikeView.addLikeImage(R.drawable.heart5);
        mLikeView.addLikeImage(R.drawable.heart6);
        mLikeView.addLikeImage(R.drawable.heart7);
        mLikeView.addLikeImage(R.drawable.heart8);
    }
    
//选择点赞方式
    @Override
    public void onClick(View v) {
    
    
        switch (v.getId()){
    
    
            case R.id.live_view_single:
                mLikeView.addFavor();
                break;
            case R.id.live_view_more:
                i=0;
                boolean selected = mMore.isSelected();
                if (selected){
    
    
                    mhandler.removeCallbacks(runnable);
                }else {
    
    
                    mhandler.postDelayed(runnable,100);
                }
                mMore.setSelected(!selected);
                break;

            default:
                break;
        }
    }
//通过设置i的数量控制爱心个数,我这里设置的是20个。
    private Runnable runnable=new Runnable() {
    
    
        @Override
        public void run() {
    
    
            if(i<20) {
    
    
                mLikeView.addFavor();
                i++;
            }
            Log.i("MainActivity.class","ieo="+i);
            mhandler.postDelayed(runnable,100);
        }
    };

    @Override
    protected void onDestroy() {
    
    
        super.onDestroy();
        mhandler.removeCallbacks(runnable);
    }
}

El cuarto paso es importar la imagen dibujable, y descargar la imagen directamente al disco de red de Baidu. Importarla en él no será válido:
Enlace: https://pan.baidu.com/s/19VA_y_yMSIBGyiRgvyvSzQ Código de extracción: sx3j
Finalmente, será muy simple Para obtener este efecto especial, si tiene alguna pregunta, puede ir a github para descargar
GitHub y hacer clic aquí . Si no conoce GitHub, también puede descargarlo directamente en csdn. De todos modos, no configuré los puntos CSDN y haga clic aquí .
Escribir un blog lleva mucho tiempo, puedes darle un pulgar hacia arriba y animarlo. El próximo blog escribirá la función de verificación de inicio de sesión por SMS. Si quieres aprender, puedes echarle un vistazo.

Supongo que te gusta

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