Android中实现动态移动控件

在一些界面上,我们可能需要实现可以移动的按钮等功能,最简单的方式是调用View.layout(),任何布局上的空间都可以支持这种方式移动,上下左右参数值是相对于父viewgroup而言的。

public void layout(int l, int t, int r, int b)
eg.
button.layout(newLeft, newTop, newRight,newBottom);

但是这种方式有个缺陷就是,当同一个viewgroup中有控件更新(界面刷新)时,移动的控件会复位,即回到一开始的位置,这常常会让人莫名其妙。

另外一种方法是调用MarginLayoutParams.setMargins(),重新设置控件位置参数来实现控件移动效果。这种方式比较适合RelativeLayout、FrameLayout,AbsoluteLayout,对于LinearLayout,因为最后增加的控件总在最下或最右,所以达不到移动效果,TableLayout也不行。

public MarginLayoutParams(MarginLayoutParams source)
eg.
FrameLayout.LayoutParams btnLp = (FrameLayout.LayoutParams)button.getLayoutParams();
btnLp.setMargins(newLeft, newTop, newRight, newBottom);
button.requestLayout();

Android不建议应用直接调用layout()方法,所以个人建议选择FrameLayout + setMargins()实现控件动态移动效果,还有一个经常搭配使用的方法是bringToFront(),当控件被盖住看不见时相当有用。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索linearlayout动态布局
, 控件
, 移动
, layout
, 效果
, framelayout
, 方式
, AbsoluteLayout
, Android动态按钮
, Android动态布局
, 帧布局frameLayout
, framelayout布局
, 控件左右移动
动态移动
android 动态移动控件、利用控件实现动态图表、android 动态添加控件、android 动态控件、android 动态生成控件,以便于您获取更多的相关知识。

时间: 2024-09-28 07:44:17

Android中实现动态移动控件的相关文章

Android中利用动态加载实现手机淘宝的节日特效_Android

相信去年圣诞节打开过手机淘宝的童鞋都会对当时的特效记忆犹新吧:全屏飘雪,旁边还有个小雪人来控制八音盒背景音乐的播放,让人有种身临其境的感觉,甚至忍不住想狠狠购物了呢(误),大概就是下面这个样子滴: 嗯,确实很炫,那么我们一步步去分析是如何实现的: 一.实现下雪的 View 首先,最上面一层的全屏雪花极有可能是一个顶层的View,而这个View是通过动态加载去控制显示的(不更新淘宝也能看到这个效果).那么我们先得实现雪花效果的 View,人生苦短,拿来就用.打开 gank.io,搜索"雪花&quo

Android中利用动态加载实现手机淘宝的节日特效

相信去年圣诞节打开过手机淘宝的童鞋都会对当时的特效记忆犹新吧:全屏飘雪,旁边还有个小雪人来控制八音盒背景音乐的播放,让人有种身临其境的感觉,甚至忍不住想狠狠购物了呢(误),大概就是下面这个样子滴: 嗯,确实很炫,那么我们一步步去分析是如何实现的: 一.实现下雪的 View 首先,最上面一层的全屏雪花极有可能是一个顶层的View,而这个View是通过动态加载去控制显示的(不更新淘宝也能看到这个效果).那么我们先得实现雪花效果的 View,人生苦短,拿来就用.打开 gank.io,搜索"雪花&quo

Android中的动态加载机制的学习研究_Android

在目前的软硬件环境下,Native App与Web App在用户体验上有着明显的优势,但在实际项目中有些会因为业务的频繁变更而频繁的升级客户端,造成较差的用户体验,而这也恰恰是Web App的优势.本文对网上Android动态加载jar的资料进行梳理和实践在这里与大家一起分享,试图改善频繁升级这一弊病. Android应用开发在一般情况下,常规的开发方式和代码架构就能满足我们的普通需求.但是有些特殊问题,常常引发我们进一步的沉思.我们从沉思中产生顿悟,从而产生新的技术形式. 如何开发一个可以自定

Android中的动态加载机制的学习研究

在目前的软硬件环境下,Native App与Web App在用户体验上有着明显的优势,但在实际项目中有些会因为业务的频繁变更而频繁的升级客户端,造成较差的用户体验,而这也恰恰是Web App的优势.本文对网上Android动态加载jar的资料进行梳理和实践在这里与大家一起分享,试图改善频繁升级这一弊病. Android应用开发在一般情况下,常规的开发方式和代码架构就能满足我们的普通需求.但是有些特殊问题,常常引发我们进一步的沉思.我们从沉思中产生顿悟,从而产生新的技术形式. 如何开发一个可以自定

Android中实现动态切换组件背景的操作

 这个也是昨天学习用到的,总结下思路吧,因为这个知识点以后绝对会再次用到. 目的:我要在软件中动态的选择组件背景,系统皮肤,自定义吐司背景等. 实现思路:要用到安卓中的SharedPrefence的功能,在设置里面写一个控件,设置一个点击监听器,点击的时候显示一个Alert选择弹窗,让你进行选择,对这个弹窗再设置一个点击监听器(onItemListener),点击到具体某个的时候,把对应的点击id保存到sahredprefence里面去,这样,其他地方就可以从这里取得设置里选择的值,进行动态个性

layout-android 中的动态相对布局

问题描述 android 中的动态相对布局 我想在布局顶端放置两个图像.用一个 xml 文件可以很好,但是我想动态的实现.ctdeasyone是一个透明的图像. <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width=

如何在 android 中动态的添加 checkboxs?

问题描述 如何在 android 中动态的添加 checkboxs? 我想在android中动态的创建edittext 字段,也创建了按钮点击事件.当我点击按钮,check boxes就会显示.但是当我在onclick动作上创建checkbox对象,就显示错误.使用的代码如下,为什么会显示错误呢? public class InflationActivity extends Activity {@Overridepublic void onCreate(Bundle savedInstanceS

Android中动态修改应用程序图标

问题描述 Android中动态修改应用程序图标 求大神告知,如何动态修改一个Android程序的图标呢?现在要求是后台有推送消息,现在需要把接收到的推送消息用一个红色数字显示到应用程序图标的右上角,IOS的APP基本都有这个效果,可是安卓怎么去实现呢?我现在目前已经实现了在手机桌面上创建和修改了图标了,但是程序栏里面的图标还是没有变换啊! 解决方案 快捷方式可以动态,重新生成就可以了.但lancher中的修改不了.那得是lancher级的修改才能生效.

android开发-android中循环遍历几个EditText怎么取到动态遍历的ID或文本框的值

问题描述 android中循环遍历几个EditText怎么取到动态遍历的ID或文本框的值 TableLayout tableLayout = new TableLayout(this);for (i = 0; i < 5; i++) {TableRow row1 = new TableRow(this);tableLayout.addView(row1);edit1.setWidth(300);edit1.setHeight(50);edit1.setPadding(3 3 3 3);row1.