91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ImageView的自定義過渡效果

發布時間:2024-08-20 12:09:20 來源:億速云 閱讀:80 作者:小樊 欄目:移動開發

要實現ImageView的自定義過渡效果,可以通過使用屬性動畫和自定義View的方式來實現。以下是一個簡單的示例代碼,實現ImageView的自定義過渡效果:

public class CustomTransitionImageView extends AppCompatImageView {

    private static final int DEFAULT_DURATION = 500;

    private boolean mIsAnimating = false;
    private int mDuration = DEFAULT_DURATION;

    public CustomTransitionImageView(Context context) {
        super(context);
    }

    public CustomTransitionImageView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init(attrs);
    }

    public CustomTransitionImageView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init(attrs);
    }

    private void init(AttributeSet attrs) {
        TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.CustomTransitionImageView);
        mDuration = a.getInt(R.styleable.CustomTransitionImageView_duration, DEFAULT_DURATION);
        a.recycle();
    }

    public void setDuration(int duration) {
        mDuration = duration;
    }

    public void startTransition() {
        if (mIsAnimating) {
            return;
        }

        ObjectAnimator scaleXAnimator = ObjectAnimator.ofFloat(this, View.SCALE_X, 0, 1);
        ObjectAnimator scaleYAnimator = ObjectAnimator.ofFloat(this, View.SCALE_Y, 0, 1);

        AnimatorSet animatorSet = new AnimatorSet();
        animatorSet.playTogether(scaleXAnimator, scaleYAnimator);
        animatorSet.setDuration(mDuration);
        animatorSet.addListener(new Animator.AnimatorListener() {
            @Override
            public void onAnimationStart(Animator animator) {
                mIsAnimating = true;
            }

            @Override
            public void onAnimationEnd(Animator animator) {
                mIsAnimating = false;
            }

            @Override
            public void onAnimationCancel(Animator animator) {
                mIsAnimating = false;
            }

            @Override
            public void onAnimationRepeat(Animator animator) {

            }
        });

        animatorSet.start();
    }
}

在xml布局文件中使用CustomTransitionImageView,并設置過渡效果的時間:

<com.example.CustomTransitionImageView
    android:id="@+id/customTransitionImageView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:duration="1000"
    android:src="@drawable/image" />

在代碼中調用startTransition方法即可開始過渡效果的動畫:

CustomTransitionImageView customTransitionImageView = findViewById(R.id.customTransitionImageView);
customTransitionImageView.startTransition();
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

佛坪县| 建平县| 常山县| 邹城市| 东乡| 缙云县| 车致| 天等县| 太康县| 乌恰县| 乐安县| 蒙自县| 浮山县| 邻水| 南开区| 尉氏县| 广水市| 应城市| 拉萨市| 新平| 巴彦县| 临城县| 阿荣旗| 克东县| 青铜峡市| 长治市| 潼关县| 贺州市| 长泰县| 鄂伦春自治旗| 历史| 苗栗县| 来安县| 米林县| 宁海县| 甘德县| 安徽省| 通城县| 千阳县| 台东市| 福贡县|