一、修改大致方法如下:

LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) textview.getLayoutParams();  lp.leftMargin = 0;  textview.setLayoutParams(lp);  

二、实际应用实例:控件随手指移动。

1、布局文件文件RelativeLayout中有个ImageVIew,id是code。

2、首先我们要给控件设置触摸监听函数,监听按下,移动,抬起,移动等操作。

3、在手指移动的过程中用setLayoutParams改变控件的位置以及大小。也可以用layout函数,但是这里我没有用。本例中手指上下移动的时候控件上下移动。手指向左移动的时候控件会变小,手指向右滑动的时候控件会变大。

ll_move.setOnTouchListener(new View.OnTouchListener() {private int startY;private int startX;@Overridepublic boolean onTouch(View v, MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_DOWN:Log.e("打印操作:", "按下了");//获取当前按下的坐标startX = (int) event.getRawX();startY = (int) event.getRawY();break;case MotionEvent.ACTION_MOVE:if(!is_move_to_modify)break;//获取移动后的坐标int moveX = (int) event.getRawX();int moveY = (int) event.getRawY();//拿到手指移动距离的大小int move_bigX = moveX - startX;int move_bigY = moveY - startY;//Toast.makeText(MainActivity.this,"\nX移动了" + move_bigX + "\nY移动了" + move_bigY, Toast.LENGTH_SHORT).show();//拿到当前控件未移动的坐标int left = ll_move.getLeft();int top = ll_move.getTop();//left += move_bigX;top += move_bigY;int right = left + ll_move.getWidth();int bottom = top + ll_move.getHeight();// ll_move.layout(left, top, right, bottom);startX = moveX;startY = moveY;RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) ll_move.getLayoutParams();SharedPreferences sp = getSharedPreferences("health_code", Context.MODE_PRIVATE);SharedPreferences.Editor editor = sp.edit();//   String str_test_time_location= String.valueOf(test_time_location);code_image_top = sp.getInt("code_image_top", 0);code_image_top =code_image_top+move_bigY;editor.putInt("code_image_top",code_image_top );editor.commit();// Toast.makeText(MainActivity.this,"lp.topMargin="+String.valueOf(lp.topMargin)+" move_bigY="+move_bigY+" ll_move.getTop()="+ll_move.getTop()+"code_image_top="+code_image_top, Toast.LENGTH_SHORT).show();lp.topMargin=lp.topMargin+move_bigY;ll_move.setLayoutParams(lp);if(move_bigX > 30){lp.height=lp.height+2;lp.width=lp.width+2;code_image_wh =lp.height;editor.putInt("code_image_wh",code_image_wh );editor.commit();ll_move.setLayoutParams(lp);Toast.makeText(MainActivity.this,"move right move_bigX "+move_bigX+"code_image_wh="+code_image_wh+"lp.height="+lp.height, Toast.LENGTH_SHORT).show();}else if (move_bigX < -30){lp.height=lp.height - 2;lp.width=lp.width - 2;code_image_wh =lp.height;editor.putInt("code_image_wh",code_image_wh );editor.commit();ll_move.setLayoutParams(lp);Toast.makeText(MainActivity.this,"move right move_bigX "+move_bigX+"code_image_wh="+code_image_wh+"lp.height="+lp.height, Toast.LENGTH_SHORT).show();}break;case MotionEvent.ACTION_UP:Log.e("打印操作:", "抬起了");break;}return true;//此处一定要返回true,否则监听不生效}});

4、涉及一点敏感的信息,这里就不上图。

四、参考文章

Android控件随手指的移动而移动_xiayiye5的博客-CSDN博客_android 随手指移动

Android 代码动态修改RelativeLayout布局 - 简书

Android动态设置Margin的方法 - 简书

2022-02-09 Android setLayoutParams动态修改RelativeLayout控件layout_width、layout_marginTop等。实际应用实例:控件随手指移动。相关推荐

  1. 动态修改RelativeLayout的宽高

    我们经常会动态修改RelativeLayout的宽高,这样的代码,比较简单,就是修改Relativelayout的LayoutParams就可以.代码一般如下: RelativeLayout ss = ...

  2. 2011.09.09 ——— android 2.2 修改安装路径

    2011.09.09 --- android 2.2 修改安装路径 android2.2比android2.1多了一个软件安装位置属性的添加: <manifest xmlns: android= ...

  3. Android怎么动态修改vector填充颜色?

    android怎么动态修改vector填充颜色? 要动态修改Android中的矢量图形(Vector)填充颜色,可以按照以下步骤: 在您的布局文件中,添加一个 ImageView,并设置其 src 属 ...

  4. 修改sim卡号码 android,android 如何动态修改SIM卡应用名称 MT6572 MT6589

    两种方法: 方法1: packages\apps\launcher2\src\com\android\launcher2\PagedViewIcon.java 1:6575.6573.6577平台: ...

  5. Java初级知识复习-2021.12.27~2022.02.09

    文章目录 Java语法基础1 1.Java简介 Java三大版本含义 Java的特性和核心优势 2.Java开发环境配置 Java应用程序的运行机制 开发环境搭建 3.Java基础语法 4.Java基 ...

  6. android动态更新配置文件,Android如何动态修改Manifest文件

    修改manifest文件Android Manifest.xml,添加相应的声明.在这里,我们需要将新定义的活动PrefsActivity注册到manifest文件. 同前面一样,在Eclipse中打 ...

  7. Android运行时修改Manifest,Android如何动态修改Manifest文件

    慕妹3242003 修改manifest文件Android Manifest.xml,添加相应的声明.在这里,我们需要将新定义的活动PrefsActivity注册到manifest文件.同前面一样,在 ...

  8. android 动态修改资源,Android如何动态修改Manifest文件

    修改manifest文件Android Manifest.xml,添加相应的声明.在这里,我们需要将新定义的活动PrefsActivity注册到manifest文件. 同前面一样,在Eclipse中打 ...

  9. android 动态更改主题,Android应用动态修改主题的方法示例

    1.使用API设置主题 如下所示,在Activity中使用setTheme setTheme(R.style.MyTheme1); 2.调用API的时机 需要在super.onCreate(saved ...

  10. android 动态修改控件的宽高

    今天,简单讲讲android如何动态设置控件的宽高. 这个其实也比较简单,但是之前做的时候出现了问题,代码里设置的宽高是dx,需要先转成dp.下面以RelativeLayout作为例子,简单记录一下. ...

最新文章

  1. 案例:Oracle dul数据挖掘 磁盘损坏dul提取数据文件中表的数据及l
  2. python的软件叫什么-python是什么软件
  3. js IE和Firefox下event处理
  4. 人脸识别进水_万维|人脸识别闸机怎么选?
  5. python以什么方式处理文件-Python文件修改和常用方法
  6. 数颜色(洛谷-P1903)
  7. 有望支撑半年时间!华为麒麟9000芯片库存约为1000万片
  8. try catch异常后会执行后面的代码吗_Java的异常体系
  9. Mac 安装 python brew
  10. armbian n1 桌面_Armbian5.89桌面版安装OpenMediaVault教程
  11. android TTS语音播报
  12. vue中删除表格中的一行记录后,如何让表格更新(性能优化)
  13. Python爬取豆瓣高分电影Top250
  14. 【高数】【本科笔记】【第七章 微分方程】【7.2 可分离变量的微分方程】
  15. phpnow测试PHP源码,phpnow php探针环境检测代码
  16. 关于BMP格式图片在终端显示的具体做法(超详细)
  17. 注塑模具设计时,需要依据哪些设定原则?
  18. 区间dp(Pangu and Stones)
  19. 图片转文字的app:智能、高效,你离大神就差一款清描!
  20. ARM V8 base instruction -- lse

热门文章

  1. 目前主要的计算机汉字输入方法是什么,[计算机汉字输入方法.ppt
  2. vue项目的elementui表格合并
  3. 初级程序员升中级程序员需要掌握哪些知识
  4. 小马哥---高仿苹果6 plus 主板型号Q33 6582芯片刷机拆机主板图与开机界面图 镜面后壳
  5. 构建数字高程模型的算法——不规则三角网(TIN, Triangulated Irregular Network)
  6. mysql 定时调用sp_使用shell脚本调用mysql数据库存储过程,并设置定时任务
  7. k-means+python︱scikit-learn中的KMeans聚类实现( + MiniBatchKMeans)
  8. c语言中判断c是否为小写字母,C语言判断英文字符大小写的方法
  9. 元真先生算命为什么很准
  10. Representation Learning 表示学习(简单笔记)