Search in sources :

Example 1 with AccelerateInterpolator

use of android.view.animation.AccelerateInterpolator in project Launcher3 by chislon.

the class WallpaperPickerActivity method init.

// called by onCreate; this is subclassed to overwrite WallpaperCropActivity
protected void init() {
    setContentView(R.layout.wallpaper_picker);
    mCropView = (CropView) findViewById(R.id.cropView);
    mWallpaperStrip = findViewById(R.id.wallpaper_strip);
    mCropView.setTouchCallback(new CropView.TouchCallback() {

        LauncherViewPropertyAnimator mAnim;

        @Override
        public void onTouchDown() {
            if (mAnim != null) {
                mAnim.cancel();
            }
            if (mWallpaperStrip.getAlpha() == 1f) {
                mIgnoreNextTap = true;
            }
            mAnim = new LauncherViewPropertyAnimator(mWallpaperStrip);
            mAnim.alpha(0f).setDuration(150).addListener(new Animator.AnimatorListener() {

                public void onAnimationStart(Animator animator) {
                }

                public void onAnimationEnd(Animator animator) {
                    mWallpaperStrip.setVisibility(View.INVISIBLE);
                }

                public void onAnimationCancel(Animator animator) {
                }

                public void onAnimationRepeat(Animator animator) {
                }
            });
            mAnim.setInterpolator(new AccelerateInterpolator(0.75f));
            mAnim.start();
        }

        @Override
        public void onTouchUp() {
            mIgnoreNextTap = false;
        }

        @Override
        public void onTap() {
            boolean ignoreTap = mIgnoreNextTap;
            mIgnoreNextTap = false;
            if (!ignoreTap) {
                if (mAnim != null) {
                    mAnim.cancel();
                }
                mWallpaperStrip.setVisibility(View.VISIBLE);
                mAnim = new LauncherViewPropertyAnimator(mWallpaperStrip);
                mAnim.alpha(1f).setDuration(150).setInterpolator(new DecelerateInterpolator(0.75f));
                mAnim.start();
            }
        }
    });
    mThumbnailOnClickListener = new OnClickListener() {

        public void onClick(View v) {
            if (mActionMode != null) {
                // When CAB is up, clicking toggles the item instead
                if (v.isLongClickable()) {
                    mLongClickListener.onLongClick(v);
                }
                return;
            }
            WallpaperTileInfo info = (WallpaperTileInfo) v.getTag();
            if (info.isSelectable()) {
                if (mSelectedThumb != null) {
                    mSelectedThumb.setSelected(false);
                    mSelectedThumb = null;
                }
                mSelectedThumb = v;
                v.setSelected(true);
                // TODO: Remove this once the accessibility framework and
                // services have better support for selection state.
                v.announceForAccessibility(getString(R.string.announce_selection, v.getContentDescription()));
            }
            info.onClick(WallpaperPickerActivity.this);
        }
    };
    mLongClickListener = new View.OnLongClickListener() {

        // Called when the user long-clicks on someView
        public boolean onLongClick(View view) {
            CheckableFrameLayout c = (CheckableFrameLayout) view;
            c.toggle();
            if (mActionMode != null) {
                mActionMode.invalidate();
            } else {
                // Start the CAB using the ActionMode.Callback defined below
                mActionMode = startActionMode(mActionModeCallback);
                int childCount = mWallpapersView.getChildCount();
                for (int i = 0; i < childCount; i++) {
                    mWallpapersView.getChildAt(i).setSelected(false);
                }
            }
            return true;
        }
    };
    // Populate the built-in wallpapers
    ArrayList<ResourceWallpaperInfo> wallpapers = findBundledWallpapers();
    mWallpapersView = (LinearLayout) findViewById(R.id.wallpaper_list);
    BuiltInWallpapersAdapter ia = new BuiltInWallpapersAdapter(this, wallpapers);
    populateWallpapersFromAdapter(mWallpapersView, ia, false, true);
    // Populate the saved wallpapers
    mSavedImages = new SavedWallpaperImages(this);
    mSavedImages.loadThumbnailsAndImageIdList();
    populateWallpapersFromAdapter(mWallpapersView, mSavedImages, true, true);
    // Populate the live wallpapers
    final LinearLayout liveWallpapersView = (LinearLayout) findViewById(R.id.live_wallpaper_list);
    final LiveWallpaperListAdapter a = new LiveWallpaperListAdapter(this);
    a.registerDataSetObserver(new DataSetObserver() {

        public void onChanged() {
            liveWallpapersView.removeAllViews();
            populateWallpapersFromAdapter(liveWallpapersView, a, false, false);
            initializeScrollForRtl();
            updateTileIndices();
        }
    });
    // Populate the third-party wallpaper pickers
    final LinearLayout thirdPartyWallpapersView = (LinearLayout) findViewById(R.id.third_party_wallpaper_list);
    final ThirdPartyWallpaperPickerListAdapter ta = new ThirdPartyWallpaperPickerListAdapter(this);
    populateWallpapersFromAdapter(thirdPartyWallpapersView, ta, false, false);
    // Add a tile for the Gallery
    LinearLayout masterWallpaperList = (LinearLayout) findViewById(R.id.master_wallpaper_list);
    FrameLayout pickImageTile = (FrameLayout) getLayoutInflater().inflate(R.layout.wallpaper_picker_image_picker_item, masterWallpaperList, false);
    setWallpaperItemPaddingToZero(pickImageTile);
    masterWallpaperList.addView(pickImageTile, 0);
    // Make its background the last photo taken on external storage
    Bitmap lastPhoto = getThumbnailOfLastPhoto();
    if (lastPhoto != null) {
        ImageView galleryThumbnailBg = (ImageView) pickImageTile.findViewById(R.id.wallpaper_image);
        galleryThumbnailBg.setImageBitmap(getThumbnailOfLastPhoto());
        int colorOverlay = getResources().getColor(R.color.wallpaper_picker_translucent_gray);
        galleryThumbnailBg.setColorFilter(colorOverlay, PorterDuff.Mode.SRC_ATOP);
    }
    PickImageInfo pickImageInfo = new PickImageInfo();
    pickImageTile.setTag(pickImageInfo);
    pickImageInfo.setView(pickImageTile);
    pickImageTile.setOnClickListener(mThumbnailOnClickListener);
    pickImageInfo.setView(pickImageTile);
    updateTileIndices();
    // Update the scroll for RTL
    initializeScrollForRtl();
    // Create smooth layout transitions for when items are deleted
    final LayoutTransition transitioner = new LayoutTransition();
    transitioner.setDuration(200);
    transitioner.setStartDelay(LayoutTransition.CHANGE_DISAPPEARING, 0);
    transitioner.setAnimator(LayoutTransition.DISAPPEARING, null);
    mWallpapersView.setLayoutTransition(transitioner);
    // Action bar
    // Show the custom action bar view
    final ActionBar actionBar = getActionBar();
    actionBar.setCustomView(R.layout.actionbar_set_wallpaper);
    actionBar.getCustomView().setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (mSelectedThumb != null) {
                WallpaperTileInfo info = (WallpaperTileInfo) mSelectedThumb.getTag();
                info.onSave(WallpaperPickerActivity.this);
            }
        }
    });
    // CAB for deleting items
    mActionModeCallback = new ActionMode.Callback() {

        // Called when the action mode is created; startActionMode() was called
        @Override
        public boolean onCreateActionMode(ActionMode mode, Menu menu) {
            // Inflate a menu resource providing context menu items
            MenuInflater inflater = mode.getMenuInflater();
            inflater.inflate(R.menu.cab_delete_wallpapers, menu);
            return true;
        }

        private int numCheckedItems() {
            int childCount = mWallpapersView.getChildCount();
            int numCheckedItems = 0;
            for (int i = 0; i < childCount; i++) {
                CheckableFrameLayout c = (CheckableFrameLayout) mWallpapersView.getChildAt(i);
                if (c.isChecked()) {
                    numCheckedItems++;
                }
            }
            return numCheckedItems;
        }

        // Called each time the action mode is shown. Always called after onCreateActionMode,
        // but may be called multiple times if the mode is invalidated.
        @Override
        public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
            int numCheckedItems = numCheckedItems();
            if (numCheckedItems == 0) {
                mode.finish();
                return true;
            } else {
                mode.setTitle(getResources().getQuantityString(R.plurals.number_of_items_selected, numCheckedItems, numCheckedItems));
                return true;
            }
        }

        // Called when the user selects a contextual menu item
        @Override
        public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
            int itemId = item.getItemId();
            if (itemId == R.id.menu_delete) {
                int childCount = mWallpapersView.getChildCount();
                ArrayList<View> viewsToRemove = new ArrayList<View>();
                for (int i = 0; i < childCount; i++) {
                    CheckableFrameLayout c = (CheckableFrameLayout) mWallpapersView.getChildAt(i);
                    if (c.isChecked()) {
                        WallpaperTileInfo info = (WallpaperTileInfo) c.getTag();
                        info.onDelete(WallpaperPickerActivity.this);
                        viewsToRemove.add(c);
                    }
                }
                for (View v : viewsToRemove) {
                    mWallpapersView.removeView(v);
                }
                updateTileIndices();
                // Action picked, so close the CAB
                mode.finish();
                return true;
            } else {
                return false;
            }
        }

        // Called when the user exits the action mode
        @Override
        public void onDestroyActionMode(ActionMode mode) {
            int childCount = mWallpapersView.getChildCount();
            for (int i = 0; i < childCount; i++) {
                CheckableFrameLayout c = (CheckableFrameLayout) mWallpapersView.getChildAt(i);
                c.setChecked(false);
            }
            mSelectedThumb.setSelected(true);
            mActionMode = null;
        }
    };
}
Also used : DecelerateInterpolator(android.view.animation.DecelerateInterpolator) ArrayList(java.util.ArrayList) LayoutTransition(android.animation.LayoutTransition) Bitmap(android.graphics.Bitmap) ImageView(android.widget.ImageView) Menu(android.view.Menu) ActionBar(android.app.ActionBar) AccelerateInterpolator(android.view.animation.AccelerateInterpolator) MenuInflater(android.view.MenuInflater) OnClickListener(android.view.View.OnClickListener) MenuItem(android.view.MenuItem) ImageView(android.widget.ImageView) HorizontalScrollView(android.widget.HorizontalScrollView) View(android.view.View) DataSetObserver(android.database.DataSetObserver) Point(android.graphics.Point) Animator(android.animation.Animator) ActionMode(android.view.ActionMode) FrameLayout(android.widget.FrameLayout) OnClickListener(android.view.View.OnClickListener) LinearLayout(android.widget.LinearLayout)

Example 2 with AccelerateInterpolator

use of android.view.animation.AccelerateInterpolator in project SmoothProgressBar by castorflex.

the class MakeCustomActivity method setInterpolator.

private void setInterpolator(int position) {
    switch(position) {
        case 1:
            mCurrentInterpolator = new LinearInterpolator();
            mSeekBarFactor.setEnabled(false);
            break;
        case 2:
            mCurrentInterpolator = new AccelerateDecelerateInterpolator();
            mSeekBarFactor.setEnabled(false);
            break;
        case 3:
            mCurrentInterpolator = new DecelerateInterpolator(mFactor);
            mSeekBarFactor.setEnabled(true);
            break;
        case 4:
            mCurrentInterpolator = new FastOutSlowInInterpolator();
            mSeekBarFactor.setEnabled(true);
            break;
        case 0:
        default:
            mCurrentInterpolator = new AccelerateInterpolator(mFactor);
            mSeekBarFactor.setEnabled(true);
            break;
    }
    mProgressBar.setSmoothProgressDrawableInterpolator(mCurrentInterpolator);
    mProgressBar.setSmoothProgressDrawableColors(getResources().getIntArray(R.array.gplus_colors));
    updateValues();
}
Also used : AccelerateDecelerateInterpolator(android.view.animation.AccelerateDecelerateInterpolator) DecelerateInterpolator(android.view.animation.DecelerateInterpolator) AccelerateInterpolator(android.view.animation.AccelerateInterpolator) LinearInterpolator(android.view.animation.LinearInterpolator) AccelerateDecelerateInterpolator(android.view.animation.AccelerateDecelerateInterpolator)

Example 3 with AccelerateInterpolator

use of android.view.animation.AccelerateInterpolator in project Launcher3 by chislon.

the class FolderIcon method onDrop.

private void onDrop(final ShortcutInfo item, DragView animateView, Rect finalRect, float scaleRelativeToDragLayer, int index, Runnable postAnimationRunnable, DragObject d) {
    item.cellX = -1;
    item.cellY = -1;
    // will not have a view to animate
    if (animateView != null) {
        DragLayer dragLayer = mLauncher.getDragLayer();
        Rect from = new Rect();
        dragLayer.getViewRectRelativeToSelf(animateView, from);
        Rect to = finalRect;
        if (to == null) {
            to = new Rect();
            Workspace workspace = mLauncher.getWorkspace();
            // Set cellLayout and this to it's final state to compute final animation locations
            workspace.setFinalTransitionTransform((CellLayout) getParent().getParent());
            float scaleX = getScaleX();
            float scaleY = getScaleY();
            setScaleX(1.0f);
            setScaleY(1.0f);
            scaleRelativeToDragLayer = dragLayer.getDescendantRectRelativeToSelf(this, to);
            // Finished computing final animation locations, restore current state
            setScaleX(scaleX);
            setScaleY(scaleY);
            workspace.resetTransitionTransform((CellLayout) getParent().getParent());
        }
        int[] center = new int[2];
        float scale = getLocalCenterForIndex(index, center);
        center[0] = (int) Math.round(scaleRelativeToDragLayer * center[0]);
        center[1] = (int) Math.round(scaleRelativeToDragLayer * center[1]);
        to.offset(center[0] - animateView.getMeasuredWidth() / 2, center[1] - animateView.getMeasuredHeight() / 2);
        float finalAlpha = index < NUM_ITEMS_IN_PREVIEW ? 0.5f : 0f;
        float finalScale = scale * scaleRelativeToDragLayer;
        dragLayer.animateView(animateView, from, to, finalAlpha, 1, 1, finalScale, finalScale, DROP_IN_ANIMATION_DURATION, new DecelerateInterpolator(2), new AccelerateInterpolator(2), postAnimationRunnable, DragLayer.ANIMATION_END_DISAPPEAR, null);
        addItem(item);
        mHiddenItems.add(item);
        mFolder.hideItem(item);
        postDelayed(new Runnable() {

            public void run() {
                mHiddenItems.remove(item);
                mFolder.showItem(item);
                invalidate();
            }
        }, DROP_IN_ANIMATION_DURATION);
    } else {
        addItem(item);
    }
}
Also used : DecelerateInterpolator(android.view.animation.DecelerateInterpolator) Rect(android.graphics.Rect) AccelerateInterpolator(android.view.animation.AccelerateInterpolator)

Example 4 with AccelerateInterpolator

use of android.view.animation.AccelerateInterpolator in project cw-omnibus by commonsguy.

the class SlidingPanel method toggle.

public void toggle() {
    TranslateAnimation anim = null;
    isOpen = !isOpen;
    if (isOpen) {
        setVisibility(View.VISIBLE);
        anim = new TranslateAnimation(0.0f, 0.0f, getHeight(), 0.0f);
    } else {
        anim = new TranslateAnimation(0.0f, 0.0f, 0.0f, getHeight());
        anim.setAnimationListener(collapseListener);
    }
    anim.setDuration(speed);
    anim.setInterpolator(new AccelerateInterpolator(1.0f));
    startAnimation(anim);
}
Also used : AccelerateInterpolator(android.view.animation.AccelerateInterpolator) TranslateAnimation(android.view.animation.TranslateAnimation)

Example 5 with AccelerateInterpolator

use of android.view.animation.AccelerateInterpolator in project cw-omnibus by commonsguy.

the class SlidingPanel method toggle.

public void toggle() {
    TranslateAnimation anim = null;
    AnimationSet set = new AnimationSet(true);
    isOpen = !isOpen;
    if (isOpen) {
        setVisibility(View.VISIBLE);
        anim = new TranslateAnimation(0.0f, 0.0f, getHeight(), 0.0f);
    } else {
        anim = new TranslateAnimation(0.0f, 0.0f, 0.0f, getHeight());
        anim.setAnimationListener(collapseListener);
        set.addAnimation(fadeOut);
    }
    set.addAnimation(anim);
    set.setDuration(speed);
    set.setInterpolator(new AccelerateInterpolator(1.0f));
    startAnimation(set);
}
Also used : AccelerateInterpolator(android.view.animation.AccelerateInterpolator) TranslateAnimation(android.view.animation.TranslateAnimation) AnimationSet(android.view.animation.AnimationSet)

Aggregations

AccelerateInterpolator (android.view.animation.AccelerateInterpolator)180 Animator (android.animation.Animator)59 DecelerateInterpolator (android.view.animation.DecelerateInterpolator)52 View (android.view.View)50 ObjectAnimator (android.animation.ObjectAnimator)40 AnimatorListenerAdapter (android.animation.AnimatorListenerAdapter)38 ImageView (android.widget.ImageView)26 AnimatorSet (android.animation.AnimatorSet)24 TextView (android.widget.TextView)22 Animation (android.view.animation.Animation)21 ValueAnimator (android.animation.ValueAnimator)17 LinearInterpolator (android.view.animation.LinearInterpolator)15 TranslateAnimation (android.view.animation.TranslateAnimation)14 AccelerateDecelerateInterpolator (android.view.animation.AccelerateDecelerateInterpolator)13 Point (android.graphics.Point)12 OvershootInterpolator (android.view.animation.OvershootInterpolator)12 Paint (android.graphics.Paint)10 Interpolator (android.view.animation.Interpolator)9 AlphaAnimation (android.view.animation.AlphaAnimation)8 AnticipateOvershootInterpolator (android.view.animation.AnticipateOvershootInterpolator)8