zoukankan      html  css  js  c++  java
  • 制作图片自转的效果

    类似于转硬币的那种,选两张相似的图片。作为开始和结束的图片:

    <ImageView
    android:id="@+id/flip_image"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    />

    在布局里面只设置一个imageView 分别装那两张图片。

    具体代码:

    private boolean mIsHeads;

    private ObjectAnimator mFlipper;//定义ObjectAnimator 对象

    private Bitmap mHeadsImage, mTailsImage;//定义用于显示图片的Bitmap对象

    private ImageView mFlipImage;//显示的imageview的对象,

    mHeadsImage = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher); //获取到bitmap对象
    mTailsImage = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
    mFlipImage = (ImageView) findViewById(R.id.flip_image);
    mFlipImage.setImageBitmap(mHeadsImage);
    mIsHeads = true;

    mFlipper = ObjectAnimator.ofFloat(mFlipImage, "rotationY", 0f, 360f);//设置绕Y轴的旋转,旋转为360
    mFlipper.setDuration(500);
    mFlipper.addUpdateListener(new AnimatorUpdateListener() {

    @Override
    public void onAnimationUpdate(ValueAnimator animation) {
    if (animation.getAnimatedFraction() >= 0.25f && mIsHeads) {
    mFlipImage.setImageBitmap(mTailsImage);
    mIsHeads = false;
    }
    if (animation.getAnimatedFraction() >= 0.75f && !mIsHeads) {
    mFlipImage.setImageBitmap(mHeadsImage);
    mIsHeads = true;
    }
    }
    });

    @Override
    public boolean onTouchEvent(android.view.MotionEvent event) {
    if (event.getAction() == MotionEvent.ACTION_DOWN) {
    mFlipper.start();//启动动画
    return true;
    }
    return super.onTouchEvent(event);
    }

  • 相关阅读:
    webpack引vue
    webpack加载css -loader
    webpack的使用
    leaflet(二)在地图上添加标记
    初学leaflet(一)引入地图资源
    Dom所有的属性,方法,和事件
    JavaScript所有函数和内置方法
    css padding 属性
    JavaScript正则表达式
    ES6 Promise
  • 原文地址:https://www.cnblogs.com/yuanting/p/5030017.html
Copyright © 2011-2022 走看看