赞
踩
所以我刚刚开始学习如何用android studio创建一个应用程序,我正在尝试制作一个简单的动画。例如,我想到了一个弹跳球,但目前我不能让我的球移动。我不完全理解一切是如何工作的,但我设法在屏幕上画了一个球,现在我想我的球移动,但问题是,我不能设法更新我的屏幕(这是由onDraw功能绘制)而它是打开的,手机只是显示最后一个屏幕时,所有的运动都结束了。我听说我必须使用invalidate函数,但我不知道如何使用它,我试着用move函数来使用它。我想知道什么是最简单的改变,我必须在我的代码上看到球在屏幕上移动。
package com.example.myfirstapp;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import java.util.Random;
public class AnimationActivity extends AppCompatActivity {
public int posX= 300;
public int posY= 300;
public int radius= 50;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
RenderView renderView = new RenderView(this);
setContentView(renderView);
while(posX<2000) {
renderView.move();
setContentView(renderView);
}
}
class RenderView extends View {
public RenderView(Context context){
super(context);
}
public void move(){
posX=posX+1;
//SystemClock.sleep(2);
invalidate();
}
protected void onDraw(Canvas canvas) {
int width = getWidth();
int height = getHeight();
canvas.drawRGB(255, 255, 255);
Paint ball = new Paint();
ball.setAntiAlias(true);
ball.setARGB(255,255,0,0);
ball.setStyle(Paint.Style.FILL_AND_STROKE);
canvas.drawCircle(posX,posY,radius,ball);
}
}
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。