Android动态布局使用详解
GPT4.0+Midjourney绘画+国内大模型 会员永久免费使用!
【 如果你想靠AI翻身,你先需要一个靠谱的工具! 】
本文为大家分享了Android动态布局的实现代码,供大家参考,具体内容如下
内容如下:介绍多种实现动态布局的方法,以及如何用代码来调整View位置
这里只介绍三种布局情况(注意不是方式)
1、无xml : 一个父类布局包含一个子父类布局,子父类布局中包含ImageView
2、无xml : 只有一个父类布局包含一个ImageView
3、有xlm布局: 通过布局ID 来进行动态布局添加
总结了下其实步骤如下:
无xml布局:
1、setContentView()之前new一个需要的布局layout,再将layout放入setContentView()
2、new 出需要的控件设置好参数(id、text···)
3、new LayoutParams 设置好控件的大小、位置属性(这里感觉和xml设置控件属性是一样的)
4、最后将params和控件放入之前new的layout即可
有xml布局:
1、setContentView()和以前一样放入layout.xml
2、通过findViewById()找到要进行添加的布局控件
之后的步骤和无xml布局的2、3、4一样
代码如下:
1、无xml : 一个父类布局包含一个子父类布局,子父类布局中包含ImageView
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | RelativeLayout relativeLayout = new RelativeLayout(this); setContentView(relativeLayout); RelativeLayout rl = new RelativeLayout(this); rl.setId(11); ImageView imageView = new ImageView(this); imageView.setId(1); imageView.setImageResource(R.mipmap.ic_launcher); RelativeLayout.LayoutParams lpRl = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); rl.setGravity(RelativeLayout.CENTER_IN_PARENT); //设置imageView 在 rl中的位置为居中 rl.addView(imageView, lpRl); RelativeLayout.LayoutParams lpParent = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); relativeLayout.addView(rl,lpParent); |
2、无xml : 只有一个父类布局包含一个ImageView
1 2 3 4 5 6 7 8 9 10 | RelativeLayout relativeLayout = new RelativeLayout(this); setContentView(relativeLayout); ImageView imageView = new ImageView(this); imageView.setId(2); imageView.setImageResource(R.mipmap.ic_launcher); //params 可以理解为 imageView的位置、大小参数集合 RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); params.addRule(RelativeLayout.CENTER_IN_PARENT); relativeLayout.addView(imageView,params); |
3、有xlm布局: 通过布局ID 来进行动态布局添加
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public class ThirdActivity extends AppCompatActivity { private LinearLayout mLinearLayout; @Override protected void onCreate( @Nullable Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_third); mLinearLayout = (LinearLayout) findViewById(R.id.linear_layout); ImageView imageView = new ImageView( this ); imageView.setImageResource(R.mipmap.ic_launcher); imageView.setId( 31 ); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); params.setMargins( 150 , 80 , 10 , 0 ); mLinearLayout.addView(imageView, params); } } |
1 2 3 4 5 6 7 | <? xml version = "1.0" encoding = "utf-8" ?> < LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android" android:id = "@+id/linear_layout" android:orientation = "vertical" android:layout_width = "match_parent" android:layout_height = "match_parent" > </ LinearLayout > |
是不是很简单啊,了解到原理后对以后一些需要动态变化的布局操作起来就十分的方便了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
![](http://files.jb51.net/skin/2018/images/jb51ewm.png)
微信公众号搜索 “ 脚本之家 ” ,选择关注
程序猿的那些事、送书等活动等着你
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 reterry123@163.com 进行投诉反馈,一经查实,立即处理!
相关文章
flutter FadeTransition实现透明度渐变动画
这篇文章主要为大家详细介绍了flutter FadeTransition实现透明度渐变动画,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2019-07-07Android使用SharedPreferences存储XML文件的实现方法
这篇文章主要介绍了Android使用SharedPreferences存储XML文件的实现方法,实例分析了SharedPreferences类的基本初始化与文件存储相关技巧,需要的朋友可以参考下2016-07-07Kotlin + Flow 实现Android 应用初始化任务启动库
这篇文章主要介绍了Kotlin + Flow 实现Android 应用初始化任务启动库的方法,帮助大家更好的理解和学习使用Android,感兴趣的朋友可以了解下2021-03-03
最新评论