gpt4 book ai didi

javascript - 为 Android 应用程序创建动态雷达

转载 作者:行者123 更新时间:2023-11-28 07:40:26 25 4
gpt4 key购买 nike

我想在 android studio 中为 android 应用程序创建一个动态雷达,如下所示:

http://jsbin.com/AMag/2/edit?html,css,output

我怎样才能做到这一点?

最佳答案

这是一个起点。创建一个像这样的自定义 View 并将其添加到 LinearLayout。

class RadarBlip {
float x;
float y;

public void setX (float x) {
this.x = x;
}

public Float getX() {
return x;
}
....
}

private class RadarView extends View {

List<RadarBlip> mRadarBlips;

public TimerViewContentView(Context context, List<RadarBlip> radarBlips, currentRadarAngle) {
super(context);
setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
mRadarBlips = radarBlips;
}

@Override
protected void onDraw(Canvas canvas) {
for(int i = 0; i < mRadarBlips.size(); i++) {
blipPaint.setAlpha(...do geometry...);
canvas.drawCircle(mRadarBlips.get(i).getX(), mRadarBlips.get(i).getY(), radius, blipPaint);
}
canvas.drawArc(oval, currentRadarAngle, currentRadarAngle - 10, false, radarPaint);
}
}

然后您想在计时器中调用 View 。类似于:

    new CountDownTimer(timeRemaining, 15) {
public void onTick(long millisUntilFinished) {
float radarAngle = ((long)millisUntilFinished)%((long)timeForRevolution) * 360f;
RadarView mRadarView = new RadarView(MyActivity.this,radarPointsArray,radarAngle);
radarLayout.removeAllViewsInLayout();
radarTimerLayout.addView(mRadarView);
timeRemaining = millisUntilFinished;
}
public void onFinish() {
}
}.start();

考虑一下使用 NineOldAndroids 的 ObjectAnimator 而不是 Timer 可能会更好。尽管 ObjectAnimator 倾向于永远不会停止并耗尽电池,除非您添加一个函数来停止它。

关于javascript - 为 Android 应用程序创建动态雷达,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28096818/

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