我试图在Android Studio中开发一个应用程序,我想使用Paint
和Canvas
,当我使用publishProgress
时,基本上会画一些东西。
如果你们中的任何一个人能告诉我我的代码有什么问题以及为什么这不会画任何东西,那就太棒了。
请注意。这一切都在AsyncTaskActivity
类
@Override
protected void doInBackground(Void... params) {
publishProgress(); // Run onProgressUpdate() method
}
}
@Override
protected void onProgressUpdate(Void... params) {
// Here you can access the UI thread
Canvas canvas = new Canvas();
Paint pa1= new Paint();
pa1.setColor(Color.RED);
pa1.setStyle(Paint.Style.FILL);
pa1.setStrokeWidth(50);
canvas.drawLine(0, 0, 100, 100, pa1);
}
答案 0 :(得分:2)
您的代码无法绘制,因为您在新的画布实例上绘图。 对于在屏幕上绘制,您必须创建自定义视图并覆盖onDraw方法。在这个方法中你有画布。试着画上它。
https://developer.android.com/training/custom-views/custom-drawing.html
答案 1 :(得分:2)
画布需要绘制到位图或视图。要绘制到位图,您可以创建一个空的位图,然后将其传递给构造函数中的Canvas。要绘制到视图,您将创建一个自定义视图并覆盖将传递Canvas的onDraw函数。
绘制到位图实际上不会显示在屏幕上,除非某些视图将该位图绘制到自己的画布上。