我基本上试图实现类似于this的东西。不幸的是,这是一个iOS教程。沿着圆形路径旋转图标/视图,滚动 - Android
我已经搜索了大多数可能的关键字以循环方式移动某些东西,但找不到任何开始。 atleast中的任何人都可以提供有关如何在Android上黑客入侵的提示吗?请。
谢谢。
我基本上试图实现类似于this的东西。不幸的是,这是一个iOS教程。沿着圆形路径旋转图标/视图,滚动 - Android
我已经搜索了大多数可能的关键字以循环方式移动某些东西,但找不到任何开始。 atleast中的任何人都可以提供有关如何在Android上黑客入侵的提示吗?请。
谢谢。
这在自定义控件中很容易实现。只需创建一个扩展View并重写draw()方法的类。然后,您可以聆听触摸并计算用户旋转控制的距离。然后,您只需使用该数据旋转画布并在其上绘制数字即可。
- = Update = - 当您重写draw方法时,您将获得一个Canvas对象。这个对象可以让你画出你想要的东西。它看起来像这样:
@Override
public void draw(Canvas c)
{
c.rotate(amount);
c.drawBitmap(myImage);
}
这是一个链接到完整Canvas Documentation。
我用旋转动画来旋转一个点的图像。
double r = Math.atan2(evt.getX() - turntable.getWidth()/2, turntable.getHeight()/2 - evt.getY());
rotation = (int) Math.toDegrees(r);
if (evt.getAction() == MotionEvent.ACTION_MOVE)
{
x= (int)evt.getX();
y = (int)evt.getY();
rotateAnim = new RotateAnimation(angle,rotation-50,200,100);
rotateAnim.setFillAfter(true);
ImageView.setanimation(rotateAnim);
ImageView.startAnimation(rotateAnim);
}
你也可以用矩阵
float newRot = new Float(rot);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.disc);
Matrix matrix = new Matrix();
matrix.postRotate(newRot - 50);
Bitmap redrawnBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
turntable.setImageBitmap(redrawnBitmap);
感谢您的答复,问题是旋转部分。我如何使一个图标/图像按钮(在我的情况下)在圆形路径中旋转,类似于在滚动视图上上下滚动的效果。我现在几乎在学习android,请你给我更多的解释。 – Wesley
已更新的答案。 – CaseyB