缩放右对齐布局不能按预期工作

时间:2013-09-13 13:20:38

标签: android alignment scale relativelayout scaleanimation

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

 android:layout_alignParentRight="true"

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

我想我可以同时将一个翻译应用到-X,但是这也存在问题(1.计算起来有点复杂,2。使用AnimationSet时,fillAfter似乎永远不会起作用)

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

1 个答案:

答案 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;
    }
}