在我的Android应用程序中,我使用了 umano的向上滑动面板(点击here)
我想扭转(旋转)ImageView,如下图所示。 ImageView的更改取决于面板打开的距离。是否可以通过滑动面板来扭转(旋转)ImageView?
以下是slideOffset显示打开了多少面板的方法,但我不知道在我的情况下如何正确使用它来旋转ImageView。顺便说一下,我使用slideOffset通过滑动面板逐渐改变颜色。
@Override
public void onPanelSlide(View panel, float slideOffset) {
Log.i(TAG, "onPanelSlide, offset " + slideOffset);
//Here is the code which change titleBar color gradually
titleBar.setBackgroundColor((int) colorEvaluator.evaluate(slideOffset, Color.parseColor("#03A9F4"), Color.parseColor("#F44336")));
}
感谢您的帮助!
答案 0 :(得分:3)
应该可以。
你需要做的是检查slideOffset
的初始值和最终值 - 我希望它在开始时为0,然后可能是屏幕的高度。
如果是这种情况,那么你应该能够使用一个简单的比例方程计算旋转角度:
@Override
public void onPanelSlide(View panel, float slideOffset) {
Log.i(TAG, "onPanelSlide, offset " + slideOffset);
//Here is the code which change titleBar color gradually
titleBar.setBackgroundColor((int) colorEvaluator.evaluate(slideOffset, Color.parseColor("#03A9F4"), Color.parseColor("#F44336")));
float angle = slideOffset * 180 / slideOffsetMax;
imageView.setRotation(angle);
}
答案 1 :(得分:2)
试试这个,它肯定会根据您的要求旋转您的图像: -
@Override
public void onPanelSlide(View panel, float slideOffset) {
Log.i(TAG, "onPanelSlide, offset " + slideOffset);
float angle = slideOffset * 180;
mImageViewArrow.setRotation(angle);
}