【问题标题】:android grow box animationandroid增长框动画
【发布时间】:2010-07-02 23:11:28
【问题描述】:

在 ListView 行内,我有一个框(现在它是一个图像视图,但我可能会在某个时候将其转换为线性或相对布局对象)。当您单击该框时,我让它开始缩放动画,使其看起来在增长。但是,一旦动画结束,盒子会立即恢复到原来的状态。我想让框保持在转换后的大小(至少在他们再次单击它之前)。

这是xml:

<scale
    android:fromXScale="1" android:toXScale="5"
    android:fromYScale="1" android:toYScale="1"
    android:pivotX="100%" android:pivotY="0%" android:fillAfter="true"
    android:duration="600" />

【问题讨论】:

    标签: android listview animation scale


    【解决方案1】:

    我能够做到这一点的唯一方法是每 1 毫秒更改一个新线程上的框的宽度。不漂亮,但它似乎是保持盒子边界的唯一方法。如果您想出一个使用 f/w 动画的选项,请告诉我...

    这是 Rohan 的代码,别忘了给我投赞成票 :)

        private void toggleMenu(final ViewHolder menu, final boolean doExpand) {
        final LayoutParams params = menu.actionMenu.getLayoutParams();
        final int originalWidth = params.width;
    
        Thread t = new Thread() {
            @Override
            public void run() {
                for (int i = 0; i < 200; i++) {
                    if (doExpand) {
                        params.width = originalWidth + i;
                    } else {
                        params.width = originalWidth - i;
                    }
                    menu.actionMenu.post(new Runnable() {
    
                        @Override
                        public void run() {
                            menu.actionMenu.requestLayout();
    
                        }
                    });
                    try {
                        Thread.sleep(1);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
    
                menu.expandCollapseButton.post(new Runnable() {
                    @Override
                    public void run() {
                        if (doExpand) {
                            menu.expandCollapseButton
                                    .setImageResource(R.drawable.monotone_arrow_right);
                        } else {
                            menu.expandCollapseButton
                                    .setImageResource(R.drawable.monotone_arrow_leftpng);
                        }
    
                    }
                });
    
                // menu.isExpanded = !menu.isExpanded;
            }
        };
        t.start();
    }
    

    【讨论】:

    • 您能否提供您如何实现它的代码 sn-p。如果您以编程方式完成,我的意思是整个班级。我也想实现同样的事情,但被困在两者之间。
    【解决方案2】:

    好吧,我让它工作了……有点。如果我在代码中完成所有操作并调用 setFillAfter、setFillBefore 和 setFillEnabled all = true,那么它似乎可以工作。唯一的问题是我的盒子上的轮廓(它有一个带有&lt;stroke&gt;元素的背景可绘制元素。填充似乎也在增长,我希望它不会增长......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-20
      • 2012-10-30
      • 1970-01-01
      相关资源
      最近更新 更多