在Android Studio中绘制背景
我试图在android Studio中开发一个应用程序,我想使用在Android Studio中绘制背景,android,canvas,android-asynctask,background,paint,Android,Canvas,Android Asynctask,Background,Paint,我试图在android Studio中开发一个应用程序,我想使用Paint和Canvas,基本上是在使用publishProgress时绘制一些东西 如果你们中的任何人都能告诉我我的代码出了什么问题以及为什么这不是绘画,那就太好了 注意。这一切都在AsyncTaskActivity类中 @Override protected void doInBackground(Void... params) { publishProgress(); // Run onP
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);
}
您的代码不会绘制,因为您在新的画布实例上绘制。 对于在屏幕上绘制,必须创建自定义视图并在其上重写onDraw方法。在这个方法中,您有画布。试着在上面画
您的代码不会绘制,因为您在新的画布实例上绘制。 对于在屏幕上绘制,必须创建自定义视图并在其上重写onDraw方法。在这个方法中,您有画布。试着在上面画
画布需要绘制为位图或视图。要绘制位图,可以创建一个空位图,然后将其传递给构造函数中的画布。要绘制到视图,您需要创建一个自定义视图并重写onDraw函数,该函数将被传递到画布
除非某些视图将位图绘制到自己的画布上,否则绘制到位图实际上不会显示在屏幕上。画布需要绘制到位图或视图。要绘制位图,可以创建一个空位图,然后将其传递给构造函数中的画布。要绘制到视图,您需要创建一个自定义视图并重写onDraw函数,该函数将被传递到画布
除非某些视图将位图绘制到自己的画布上,否则绘制到位图实际上不会显示在屏幕上。您的画布没有连接到屏幕上的任何内容。您可能想创建一个自定义视图,该视图可以使用
onProgressUpdate
显示进度。好的,我想我需要使用extends view
创建一个新类,并尝试从onProgressUpdate()
调用ondraw()
。是吗?视图必须是视图层次结构的一部分,否则它仍然不会出现在屏幕上。因此,不,您不想创建新视图。您需要在活动的布局中定义一个视图,然后找到该视图。将实际的绘图放在视图的onDraw
方法中。好的,最后一个问题,如何获得需要传递到onDraw
方法的实际画布。非常感谢。不要直接给onDraw打电话。只需通过调用视图的invalidate()
方法告诉框架需要重新绘制视图。它将负责设置画布并为您调用onDraw
。您的画布未连接到屏幕上的任何内容。您可能想创建一个自定义视图,该视图可以使用onProgressUpdate
显示进度。好的,我想我需要使用extends view
创建一个新类,并尝试从onProgressUpdate()
调用ondraw()
。是吗?视图必须是视图层次结构的一部分,否则它仍然不会出现在屏幕上。因此,不,您不想创建新视图。您需要在活动的布局中定义一个视图,然后找到该视图。将实际的绘图放在视图的onDraw
方法中。好的,最后一个问题,如何获得需要传递到onDraw
方法的实际画布。非常感谢。不要直接给onDraw打电话。只需通过调用视图的invalidate()
方法告诉框架需要重新绘制视图。它将负责设置画布并为您调用onDraw
。