亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

普兰店市| 乐陵市| 田林县| 桐城市| 徐汇区| 肇源县| 自贡市| 苏尼特左旗| 乾安县| 宾川县| 秦皇岛市| 都兰县| 长垣县| 凤山市| 汝城县| 民丰县| 乌拉特中旗| 博白县| 刚察县| 彭阳县| 景谷| 女性| 舒兰市| 新密市| 井冈山市| 金川县| 乐昌市| 灵山县| 雷州市| 东阿县| 三河市| 青铜峡市| 四会市| 泉州市| 松桃| 县级市| 彭州市| 卢湾区| 彝良县| 淮南市| 柳江县|