首页 > 解决方案 > 如何在 GameActivity 中使用 Fingeline.java

问题描述

我在画画时试图画一条线来跟随我的手指,但我不知道如何在我的 GameActivity 上使用手指线。我一直在尝试用手指的运动画一条线。谷歌搜索后,我发现我必须使用 Fingerline.java 类,但在实现这个类之后,我似乎不知道如何在我的 MainActivity 中使用它。我尝试过使用 Fingerline 中的方法。GameActivity 上的java,但它仍然给出错误。请帮我。

手指线.java

import android.content.Context;
import android.graphics.*;
import android.graphics.Paint.Style;
import androidx.annotation.NonNull;
import android.util.AttributeSet;
import android.view.*;

import androidx.annotation.NonNull;

public class FingerLine extends View {
    private final Paint mPaint;
    private float startX;
    private float startY;
    private float endX;
    private float endY;

    public FingerLine(Context context) {
        this(context, null);
    }

    public FingerLine(Context context, AttributeSet attrs) {
        super(context, attrs);
        mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
        mPaint.setStyle(Style.STROKE);
        mPaint.setColor(Color.RED);
    }


    @Override protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        canvas.drawLine(startX, startY, endX, endY, mPaint);
    }

    @Override
    public boolean onTouchEvent(@NonNull MotionEvent event) {
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                startX = event.getX();
                startY = event.getY();
                // Set the end to prevent initial jump (like on the demo recording)
                endX = event.getX();
                endY = event.getY();
                invalidate();
                break;
            case MotionEvent.ACTION_MOVE:
                endX = event.getX();
                endY = event.getY();
                invalidate();
                break;
            case MotionEvent.ACTION_UP:
                endX = event.getX();
                endY = event.getY();
                invalidate();
                break;
        }
        return true;
    }
}

游戏活动.java

public class GameActivity extends AppCompatActivity {

    ConstraintLayout Letter_panel;


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

        // how activity in full screen
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN); //show the activity in full screen

        Letter_panel=this.findViewById(R.id.constraintLayout4);
}    
    }

标签: javaandroid-studio

解决方案


推荐阅读