我有一个带有ImageView的RelativeLayout,它与屏幕右侧对齐
android:layout_alignParentRight="true"
然后我将动画应用到布局,将其缩放到两倍大小(在X轴上),但由于某种原因,对齐被破坏,布局(及其中的图像)在屏幕外伸展到正确的。我期待它向左增长,因为它与父权利一致。
我想我可以同时将一个翻译应用到-X,但是这也存在问题(1.计算起来有点复杂,2。使用AnimationSet时,fillAfter似乎永远不会起作用)
有谁知道如何顺利解决这个问题? :)
答案 0 :(得分:0)
显然,Androids扩展正在做各种不好的事情,例如它不能正确地扩展9个补丁。这是一个用于缩放的自定义动画,它将解决上述问题并与9补丁图像兼容。我在这里也得到了一些基础信息,这只是他的解决方案的重写:How to implement expandable panels in Android?
public class ExpandAnimation extends Animation
{
private final int mStartWidth;
private final int mDeltaWidth;
private View view;
public ExpandAnimation(View view, int startWidth, int endWidth)
{
mStartWidth = startWidth;
mDeltaWidth = endWidth - startWidth;
this.view = view;
}
@Override
protected void applyTransformation(float interpolatedTime, Transformation t)
{
android.view.ViewGroup.LayoutParams lp = view.getLayoutParams();
lp.width = (int) (mStartWidth + mDeltaWidth * interpolatedTime);
view.setLayoutParams(lp);
view.invalidate();
}
@Override
public boolean willChangeBounds()
{
return true;
}
}