我想創建以下概念:動畫視圖的寬度以匹配父項?
首先將視圖展開爲其父寬度(它不相同)。 然後將視圖展開到其父母的高度。
我知道我可以用AnimatorSet()
創建序列。我找不到什麼屬性/動畫來創建結果。
我對寬度動畫的想法: 我可能需要動畫兩個定義左右兩個點的動畫,或者動畫翻譯和寬度。
我有點困惑,哪些屬性會訣竅?
我想創建以下概念:動畫視圖的寬度以匹配父項?
首先將視圖展開爲其父寬度(它不相同)。 然後將視圖展開到其父母的高度。
我知道我可以用AnimatorSet()
創建序列。我找不到什麼屬性/動畫來創建結果。
我對寬度動畫的想法: 我可能需要動畫兩個定義左右兩個點的動畫,或者動畫翻譯和寬度。
我有點困惑,哪些屬性會訣竅?
我認爲沒有必要使事情變得複雜,你可以使用width屬性首先再其次是在AnimatorSet高度,你的看法重力屬性將確定在哪個方向視圖將擴大...
你需要定義自定義屬性來做到這一點(我知道,愚蠢)。身高例如:
public static final Property<View, Integer> PROPERTY_HEIGHT =
new Property<View, Integer>(Integer.class, "viewLayoutHeight") {
@Override
public void set(View object, Integer value) {
object.getLayoutParams().height = value.intValue();
object.requestLayout();
}
@Override
public Integer get(View object) {
return object.getLayoutParams().height;
}
};
然後作爲一個正常的財產使用:
ObjectAnimator.ofInt(view, PROPERTY_HEIGHT, minHeight, maxHeight);
你需要在運行時獲取父尺寸(可能使用ViewTreeObserver.OnGlobalLayoutListener
)。
沒有試過,只是問擴展的方向怎麼樣? – Diolor 2014-09-21 14:36:58
這不是你問題的一部分。如果它滿足你原來的問題,請接受這個答案。您可能需要單獨控制翻譯。 – 2014-09-21 14:51:46
我的答案解決了你的問題嗎? – 2014-09-23 11:57:55