gpt4 book ai didi

java - 如何在 View 上绘制 Canvas

转载 作者:行者123 更新时间:2023-12-02 09:21:20 26 4
gpt4 key购买 nike

我想使用 Canvas 在 View 上绘制文本。

这是我尝试执行此操作的一些代码。

public class MainActivity extends AppCompatActivity {


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

view=findViewById(R.id.viewOfText);


Canvas canvas = new Canvas();
Paint paint = new Paint();
paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.FILL);
paint.setTextSize(40f);
canvas.drawText("Text", 10, 25, paint);

view.draw(canvas);
view.invalidate();



}
}

但我没有看到任何结果

最佳答案

Canvas 创建扩展 View 的新类的更常用方法

例如

DrawText.java

package com.test.canvas;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;

public class DrawText extends View {
Paint paint = new Paint();

private void init() {
paint.setColor(Color.BLACK);
}

public DrawText(Context context) {
super(context);
init();
}

public DrawText(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}

public DrawText(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}

@Override
public void onDraw(Canvas canvas) {
paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.FILL);
paint.setTextSize(40f);
canvas.drawText("Text", 100, 100, paint);
}

}

activity_main.xml

<?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.test.canvas.DrawText
android:id="@+id/DrawText"
android:layout_width="match_parent"
android:layout_height="match_parent">

</com.test.canvas.DrawText>
</androidx.constraintlayout.widget.ConstraintLayout>

MainActivity.java

package com.test.canvas;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);
}
}

关于java - 如何在 View 上绘制 Canvas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58673653/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com