web-dev-qa-db-ja.com

マテリアルデザインでサイズ変更ビューをアニメートする

LayoutParamsを使用せずに、ビューのサイズを変更、折りたたむ、または拡大する別の方法はありますか?新しいマテリアルデザインのいくつかのビューと新しいAndroidダイヤラアプリ。Googleによると、マテリアルは形状、サイズ、回転、色などを簡単に変更できるとのことですが、私は何も見つかりません。

下位互換性はありますか?

これまで、ビューのサイズを変更したり、折りたたんだり、展開したりするには、次のようにlayoutParamsを操作する必要がありました。

public static void collapse(final View v) {
final int initialHeight = v.getMeasuredHeight();

Animation a = new Animation()
{
    @Override
    protected void applyTransformation(float interpolatedTime, Transformation t) {
        if(interpolatedTime == 1){
            v.setVisibility(View.GONE);
        }else{
            v.getLayoutParams().height = initialHeight - (int)(initialHeight * interpolatedTime);
            v.requestLayout();
        }
    }

    @Override
    public boolean willChangeBounds() {
        return true;
    }
};

a.setDuration((int)(initialHeight / v.getContext().getResources().getDisplayMetrics().density));
v.startAnimation(a);

}

これが私が新しいGoogleに欲しいものの例ですAndroidダイヤラアプリ:

enter image description here

14
stanete

ViewPropertyAnimatorはあなたが望むものだと思います。このリンクを確認してください http://developer.Android.com/guide/topics/graphics/prop-animation.html#view-prop-animator

次に例を示します。

view.animate().scaleY(endHeight/initialHeight).start()

これは、コードで行ったのと同じアニメーションです

8
user3285324