Android-android图片旋转问题

意见反馈 意见反馈 主题:991 回复:2082

Android-android图片旋转问题

瑾兮 发布于 2017-07-01 字数 197 浏览 1130 回复 1

我现在想实现这样一种效果,就是界面上是像九宫格的图片,然后点击一个格子就弹出一个界面,要求点击后有个动画,就像点击了卡片一样的旋转动画,然后再弹出界面,请问这个效果怎么实现呢,或者有什么思路

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(1

晚风撩人 2017-07-23 1 楼

继承一个 View,重写 onTouchEvent,这样子就能获取到点击事件,大致的样子是:

@Override
public boolean onTouchEvent(MotionEvent event)
{
switch (event.getAction())
{
case MotionEvent.ACTION_DOWN:
// Point 类型的变量,获取到点击的绝对坐标点
mAbsolutePoint.set((int) event.getX(), (int) event.getY());
// 调用一个判断这个点属于哪个图片的方法,以及相关操作
foo();

    break;

default:
    System.out.println("others touch event: " + event.getAction());
    break;
}

return super.onTouchEvent(event);

}

在 foo() 里面计算位置之后,针对所在图形控件调用动画相关处理的方法(Android 动画也就四种,变变参数就是常见的效果了)即可,这里拿渐变举例:

/**

  • 统一渐变的动画处理

  • @author Neo
    */
    private AnimationSet setAnimation(boolean shareInterpolator, float fromAlpha, float toAlpha, long duration)
    {

    AnimationSet animationSet = new AnimationSet(shareInterpolator);
    AlphaAnimation alphaAnimation = new AlphaAnimation(fromAlpha, toAlpha);
    alphaAnimation.setDuration(duration);
    animationSet.addAnimation(alphaAnimation);
    animationSet.setFillAfter(true);
    return animationSet;
    }

比如,现在已经确定点击事件是在左上角的 ImageView 上面的,那就执行 leftUpImageView.startAnimation(setAnimation(true, 0, 1, 500)); 即可实现渐变效果,至于 setAnimation 就是看你写什么效果就是什么效果啦。当然,很多应用都习惯性的把动画的设置写在 drawable 里面的 xml 里面,斑驳认为那样子的可变性不如直接调用方法来的实在。

斑驳敬上