中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

凌海市| 登封市| 张家口市| 陆良县| 新乡县| 方正县| 宁晋县| 榆树市| 甘洛县| 金塔县| 宜丰县| 博野县| 桑日县| 教育| 墨江| 阿鲁科尔沁旗| 津市市| 城固县| 交口县| 醴陵市| 德令哈市| 信阳市| 阿坝县| 沧源| 嘉义市| 平罗县| 万全县| 海城市| 翼城县| 垣曲县| 依兰县| 磐石市| 澜沧| 长沙县| 文成县| 阿拉尔市| 竹山县| 交城县| 通江县| 西乌| 仙游县|