gpt4 book ai didi

android - 如何解决更新/刷新时的问题 - 显示动画?

转载 作者:行者123 更新时间:2023-11-29 02:13:14 25 4
gpt4 key购买 nike

可能是简单的问题,但找不到解决方案。

我有刷新/更新一些内容的按钮。名为“刷新”的按钮。在此按钮的背景中 - 我有图像。我想在我的内容更新时为此图像设置旋转动画。但我有一些问题:首先 - 我的内容已更新,但我只能看到动画:这是我的代码:

 Timer myTimer;
public void timerS()
{
myTimer = new Timer();
myTimer.schedule(new TimerTask() {
@Override
public void run() {
TimerMethod();
}
}, 0, 100);
}
private void TimerMethod()
{
this.runOnUiThread(Timer_Tick);
}

private Runnable Timer_Tick = new Runnable() {
public void run() {
// drawMatrix();
animation();
seconds++;
}

};
int degree =60;
int oneClick=1;
public int nowUpdated = 0;
public void animation()
{
int currentRotation = 0;
RotateAnimation anim = new RotateAnimation(currentRotation, (360*4),
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,0.5f);
currentRotation = (currentRotation + 45) % 360;

anim.setInterpolator(new LinearInterpolator());
anim.setDuration(10000);
anim.setFillEnabled(true);

anim.setFillAfter(true);
refresh.startAnimation(anim);
}

我尝试为此使用计时器。首先,我的示例是 drawMatrix - 但我无法解决图像大小的问题。当我的图像旋转时 - 动画非常大。图片尺寸为 32x32.. 但当点击更新时 - 我认为图片尺寸为 64x64。无法解决这个问题这里是绘制矩阵的代码:

public void drawMatrix()
{
if(nowUpdated==1)
{
Matrix mat = new Matrix();
degree=degree+45;
mat.postRotate(degree);
Bitmap source = BitmapFactory.decodeResource(getResources(),R.drawable.refresh);

Bitmap a = Bitmap.createBitmap(source, 0, 0, 32 , 32, mat, true);
Drawable d =new BitmapDrawable(a);
refresh.setBackgroundDrawable(d);
}
}

如果有人能帮助我,请告诉我如何首先修复我的代码,或者其次。问候彼得。

最佳答案

如聊天中所述:使用 AsyncTask 进行更新处理(在 doInBackground() 中)并在开始实际处理之前 - 调用 publishProgress() - 这将调用 AsyncTask 方法 onProgressUpdate(你必须重写) 并在那里开始你的动画 :) - 后一步是必要的,因为 onProgressUpdate 可以做 UI 线程的事情 - doInBackground 不能(因为它不在 UI 线程上运行)。

干杯,

Ready4Android

关于android - 如何解决更新/刷新时的问题 - 显示动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6016660/

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