gpt4 book ai didi

安卓绘图

转载 作者:行者123 更新时间:2023-11-28 20:58:03 26 4
gpt4 key购买 nike

我正在学习如何使用 Android 进行编码,但我仍然对它的工作方式感到困惑,我能够创建像圆圈之类的简单绘图,但现在我想多次绘制圆圈,延迟 2 秒。 . 如果你们专家能帮助我改进我的代码并将这些东西放在正确的位置,我将不胜感激

public class ColorChanges extends Activity {
DrawCircle dc;


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

}

void drawCircleToCanvas()
{
final Handler handler = new Handler() {
public void handleMessage(Message msg) {
dc.postInvalidate();
}
};
Thread updateUI = new Thread()
{
public void run() {
dc = new DrawCircle(this); //this line does not work
dc.setBackgroundColor(Color.WHITE);


setContentView(dc);

handler.sendEmptyMessage(0);

}
};
updateUI.start();
}
}

公共(public)类 DrawCircle 扩展 View { Paint p1 = new Paint(); Paint p2 = new Paint(); Paint p3 = new Paint();

Paint pAll[] = new Paint[3];


public DrawCircle(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public DrawCircle(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}

public DrawCircle(Context context) {
super(context);

p1.setStyle(Paint.Style.STROKE);
p1.setColor(Color.GREEN);
p1.setStyle(Paint.Style.FILL);

p2.setStyle(Paint.Style.STROKE);
p2.setColor(Color.BLUE);
p2.setStyle(Paint.Style.FILL);

p3.setStyle(Paint.Style.STROKE);
p3.setColor(Color.YELLOW);
p3.setStyle(Paint.Style.FILL);

pAll[1] = p1;
pAll[2] = p2;
pAll[3] = p3;

// TODO Auto-generated constructor stub
}

@Override
public void onDraw(Canvas canvas)
{
for (int i = 0; i < pAll.length;i++)
{
canvas.drawCircle(200, 200, 100, pAll[i]);
}

}

最佳答案

如果你想绘制颜色随时间变化的同一个圆(正如你提到的每 2 秒),你应该使用 Handler

为了创建一个计时器并在每次调用时切换绘画。不要忘记在自定义 View 中调用 invalidate 函数,因为此函数会要求系统重绘屏幕。

关于安卓绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4908795/

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