【问题标题】:Smooth bitmap rotation android SurfaceView平滑位图旋转android SurfaceView
【发布时间】:2014-09-25 09:16:04
【问题描述】:

我想让我的小行星在我的安卓游戏中不断旋转,但我完全不知道从哪里开始。

我知道我可以旋转画布,但是我找不到在画布旋转任意角度后在哪里绘制对象的数学公式,所以它是我恢复画布后应该在的位置。

我的意思是我只计算了 90、180、270 度,你能帮帮我吗?我只是需要一个提示。

感谢您的帮助!

编辑:我终于用 canvas.rotate() 弄明白了

【问题讨论】:

  • 使用矩阵 API,例如 Matrix.mapPoints

标签: java android canvas bitmap surfaceview


【解决方案1】:

您可以将动画 XML 文件中的内置 android.R.anim.linear_interpolatorandroid:interpolator="@android:anim/linear_interpolator" 一起使用

你可以像这样使用它:

<?xml version="1.0" encoding="UTF-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="3000"
android:fromDegrees="0"
android:interpolator="@android:anim/linear_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="infinite"
android:toDegrees="359" />

使用java:

//Rotate Asteroids
ImageView mAsteroids = (ImageView) findViewById(R.Id.Asteroids);
mAsteroids.setDrawingCacheEnabled(true);
rAnim = new RotateAnimation(0.0F, 359.0F, Dimension.RelativeToSelf, 0.5F, Dimension.RelativeToSelf, 0.5F);  
rAnim.Interpolator = new LinearInterpolator();
rAnim.RepeatCount = Animation.Infinite;
rAnim.Duration = 1500; //<-- you duration
mAsteroids.StartAnimation(rAnim);

【讨论】:

  • 您好,感谢您的回答!它在xml中,我应该把它放在哪里?对我的布局?不幸的是,我根本不使用 xml:D
  • 你就是那个男人!我会尝试一下 编辑:好的,所以基本上我不知道“加载”是什么,而且由于某种原因 Eclipse 也没有找到 Dimension。有没有办法给 ImageView 一个位图?因为我根据屏幕分辨率缩放位图,如果可能的话,我想旋转缩放和加载的位图
  • loadng 是一个错字,你必须导入 Dimension 类。要设置图像,您可以使用mImageView.setImageBitmap(mImage);
  • 什么是我的 mAsteroids 作为位图加载?没有用于绘制它的 ImageView。
  • 您可以动态创建 ImageView 并根据您的要求提供布局参数
猜你喜欢
  • 2019-04-22
  • 1970-01-01
  • 2021-05-07
  • 1970-01-01
  • 2010-12-10
  • 2013-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多