Android开发(13) 移动View

概述

我们常用的linearlayout,等都属于流布局,在流布局中如何移动控件呢? 我决定做个尝试。虽然可以使用绝对布局,但我不倾向使用这个布局。那么看看我的方式吧。

Android开发(13) 移动View_第1张图片

margin方式

margin属性,指定边距。我们就用来它来控制控件的位置,改动它的值将会产生移动的效果。

ViewGroup.MarginLayoutParams paras = (ViewGroup.MarginLayoutParams) textView1
                    .getLayoutParams();

            paras.setMargins(paras.leftMargin + 15, paras.topMargin + 15,
                    paras.rightMargin, paras.bottomMargin);
            textView1.requestLayout();

如上面的代码所示,margin的属性存在于 布局参数LayoutParams中。

  1. 我们先获得该控件的 布局参数 然后转型为ViewGroup.MarginLayoutParams

  2. 更改margin的数值,通过更改 该控件的上下左右偏移量(相对于父容器控件的原点),来更改控件的呈现位置。

  3. 调用requestLayout 请求重新布局。

通过上面的方式,我们可以产生控件移动的效果。

ScrollBy方式

同时,我们了解下 ScrollBy这个方法,该方法可以产生控件的滚动效果。而看起来移动了该控件的子内容。

          textView1.scrollBy(15, 15); 

该方法需要两个参数,x轴偏移量和y轴偏移量。执行代码后,我们看到产生了 类似 滚动条移动后,控件 上移 的效果。看起来像是重绘了视图内容,而变化了绘制的坐标原点。

类似的还有个scroolTo方法,该方法需要指定目的偏移量。

完整的示例代码如下:

     
    
        
    
            
        
    
        
    
            

代码下载

你可能感兴趣的:(Android开发(13) 移动View)