0

我有一个带有 ImageView 的 RelativeLayout,它与屏幕右侧对齐

 android:layout_alignParentRight="true"

然后我将动画应用于布局,将其缩放到两倍大小(在 X 轴上),但由于某种原因,对齐被破坏,布局(和其中的图像)向右延伸到屏幕之外。我期待它向左增长,因为它与父权对齐。

我想我可以同时对 -X 应用转换,但这也有问题(1. 计算起来有点复杂,2. 使用 AnimationSet 时,fillAfter 似乎永远无法工作)。

有谁知道如何顺利​​解决这个问题?:)

4

1 回答 1

0

显然,Android 的缩放正在做各种各样的坏事,例如它不能正确缩放 9-patch。这是一个自定义缩放动画,可以解决上述问题,并且与 9-patch 图像兼容。我还在这里获得了一些基本信息,这只是对他的解决方案的重写:如何在 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;
    }
}
于 2013-09-13T15:04:44.903 回答