Intereting Posts
Android-эквивалент getActivity () из / в ActionBarActivity Как я могу установить значение, отмеченное в ListPreference Видео не воспроизводится должным образом со списком в Android Бинарная строка XML-файла # 2: ошибка раздувания класса <unknown> Как приостановить и возобновить будильник Android? Как получить телефонное название мелодии звонка в программном обеспечении Android, вместо того, чтобы получать идентификатор мелодии звонка JSON VS простая манипуляция строк для синтаксического анализа HttpRequest в Android Обратный вызов при завершении создания меню опций FileNotFoundException: res / drawable-xhdpi-v4 / foo.png только в журналах сбоев в Play Маркете XPathExpression не оценивается в надлежащем контексте? Как изменить значок SearchView по умолчанию? Создание родной библиотеки с автономной ручкой андроида Android: не удалось установитьContentView при переключении на ListActivity Ошибка: выполнение не выполнено для задачи ': app: transformClassesWithJarMergingForDebug' Как получать уведомления при изменении активности (приложения) на переднем плане

Как можно использовать ViewPropertyAnimator для установки Width на определенное значение

Как я могу использовать ViewPropertyAnimator для установки ширины моего представления?

Я могу масштабировать или переводить (см. Ниже), но я не могу установить определенную ширину.

frame_1.animate().scaleX(5).scaleY(5).start(); 

Но нет

 frame_1.animate().width(1024).height(768).start(); 

Используйте простую анимацию вместо ViewPropertyAnimator

 public class ResizeWidthAnimation extends Animation { private int mWidth; private int mStartWidth; private View mView; public ResizeWidthAnimation(View view, int width) { mView = view; mWidth = width; mStartWidth = view.getWidth(); } @Override protected void applyTransformation(float interpolatedTime, Transformation t) { int newWidth = mStartWidth + (int) ((mWidth - mStartWidth) * interpolatedTime); mView.getLayoutParams().width = newWidth; mView.requestLayout(); } @Override public void initialize(int width, int height, int parentWidth, int parentHeight) { super.initialize(width, height, parentWidth, parentHeight); } @Override public boolean willChangeBounds() { return true; } 

}

Попробуйте это, поддержите даже с Android 2.3:

  ValueAnimatorCompat exitAnimator = AnimatorCompatHelper.emptyValueAnimator(); exitAnimator.setDuration(TransitCompat.ANIM_DURATION * 4); exitAnimator.addUpdateListener(new AnimatorUpdateListenerCompat() { private float oldWidth = view.getWidth(); private float endWidth = 0; private float oldHeight = view.getHeight(); private float endHeight = 0; private Interpolator interpolator2 = new BakedBezierInterpolator();//Any other will be also OK @Override public void onAnimationUpdate(ValueAnimatorCompat animation) { float fraction = interpolator2.getInterpolation(animation.getAnimatedFraction()); float width = oldWidth + (fraction * (endWidth - oldWidth)); mTarget.get().getLayoutParams().width = (int) width; float height = oldHeight + (fraction * (endHeight - oldHeight)); view.getLayoutParams().height = (int) height; view.requestLayout(); } }); exitAnimator.start();