使用代码构建布局及设置常用属性
来源:互联网 发布:淘宝联盟提现的日期 编辑:程序博客网 时间:2024/05/29 18:07
很多时候,由于项目的原因,我们必须要通过代码来构建布局。而很多控件的属性,在用代码构建的时候,一般不是很方便。所以为了日后方便复习,特来把代码写过的布局整理一下以供参考。
先来看一个布局:
RelativeLayout relativeLayout=new RelativeLayout(getActivity()); ViewGroup.MarginLayoutParams layoutParams=new ViewGroup.MarginLayoutParams(ViewGroup.MarginLayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.MATCH_PARENT); relativeLayout.setLayoutParams(layoutParams); relativeLayout.setGravity(Gravity.CENTER); TextView textView=new TextView(getActivity()); ViewGroup.MarginLayoutParams params; String TagName=skinCardTagOption.getTagName(); if(TagName.length()<=4) { params=new ViewGroup.MarginLayoutParams(DipUtil.dip2px(getActivity(),70),DipUtil.dip2px(getActivity(),28)); }else { params=new ViewGroup.MarginLayoutParams(ViewGroup.MarginLayoutParams.WRAP_CONTENT,DipUtil.dip2px(getActivity(),28)); textView.setPadding(DipUtil.dip2px(getActivity(), 12), 0, DipUtil.dip2px(getActivity(), 12), 0); } textView.setLayoutParams(params); textView.setGravity(Gravity.CENTER); textView.setId(R.id.option_tv); textView.setText(skinCardTagOption.getTagName()); textView.setTag(skinCardTagOption); textView.setBackgroundResource(R.drawable.beauty_info_selector); relativeLayout.addView(textView); RelativeLayout.LayoutParams txtParams= (RelativeLayout.LayoutParams) textView.getLayoutParams(); txtParams.setMargins(DipUtil.dip2px(getActivity(),5),DipUtil.dip2px(getActivity(),7),
DipUtil.dip2px(getActivity(),5),DipUtil.dip2px(getActivity(),7)); textView.setLayoutParams(txtParams); TextView tagTV=new TextView(getActivity()); ViewGroup.MarginLayoutParams tagParams=new ViewGroup.MarginLayoutParams(DipUtil.dip2px(getActivity(),15),
DipUtil.dip2px(getActivity(), 15)); tagTV.setLayoutParams(tagParams); tagTV.setBackgroundResource(R.drawable.label_item_selector); relativeLayout.addView(tagTV); RelativeLayout.LayoutParams reParams= (RelativeLayout.LayoutParams) tagTV.getLayoutParams(); reParams.topMargin=DipUtil.dip2px(getActivity(),3); reParams.rightMargin=DipUtil.dip2px(getActivity(),1); reParams.addRule(RelativeLayout.ALIGN_RIGHT,R.id.option_tv); tagTV.setLayoutParams(reParams);上面这段代码,我是构建了一个相对布局。在相对布局中add了2个textview,并且tagTV的右边坐标是以textview的右边坐标为基准线来设置的。也就是说,在没有给tagTV设置margin的情况下,它们两的右边坐标是相等的。所以最终效果是这样的:
RelativeLayout.LayoutParams reParams= (RelativeLayout.LayoutParams) tagTV.getLayoutParams(); reParams.addRule(RelativeLayout.ALIGN_RIGHT,R.id.option_tv); tagTV.setLayoutParams(reParams);一、alignParentRight和alignRight:
所以我们看这一段,addRule方法,就是在相对布局的时候,当前控件设置基准线的。前面一个参数代表什么样的基准线,左边、右边、上边、下边。后面一个参数代表,以哪一个控件作为标准。除了这种用法,我们还可以设置android:layout_alignParentRight这些属性等等。
lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);二、drawableRight:
drawableTop或者drawableRight这些也是我们为textview或者button这些控件,常用的设置选项。但是在代码中,却没有setDrawTop这些方法。那我们应该怎么实现?可以参考以下代码:
Drawable drawable=getResources().getDrawable(R.drawable.tag_select); drawable.setBounds(0,0,drawable.getMinimumWidth(),drawable.getMinimumHeight()); textView.setCompoundDrawables(null,null,drawable,null);这样我们就通过代码为textview设置了drawableRight。
三、TextView加下划线或者中划线或者应用不同颜色:
// 中划线
1.
textView.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG | Paint.ANTI_ALIAS_FLAG);
// 设置中划线并加清晰
// 下划线
1.
textView.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);
//取消设置的线
1.
textView.getPaint().setFlags(
0
);
// 取消设置的的划线
还有一种方式是直接使用HTML的标签来设置下划线:
holder.originPriceTV.setText(Html.fromHtml("<font color='#999999'> <u>测试</u></font>"+"谢谢"));这种方法不仅更简单而且更灵活,而且可以同时设置多种效果,不仅可以设置不同的颜色,同时还可以设置下划线等等。当然不保证HTML的所有标签都能使用。
四、setScaleY:
view.setScaleY(0.8f); view.setAlpha(0.8f);有时候,我们需要直接缩放控件,而不需要动画。那么就可以直接用setScaley这些属性,直接缩放控件了。
0 0
- 使用代码构建布局及设置常用属性
- 属性动画代码及布局
- UILabel的使用及常用属性的设置
- UITextField - 常用属性及设置
- 代码设置控件的相对布局属性
- 使用java代码构建android布局控件
- Android常用布局及属性--LinearLayout
- PullToRefreshListView布局属性及java代码应用
- GridView使用常用属性设置
- RelativeLayout相对布局属性及一些常用属性介绍
- 窗体的常用属性及设置
- 布局xml中的属性设置如何在代码中实现
- android代码中动态设置布局中控件的属性
- android代码中动态设置布局中控件的属性
- Android常用布局及属性--FrameLayout、TableLayout、 GridLayout、AbsoluteLayout、RelativeLayout
- flex布局:常用属性及文字图片对齐试验
- RelativeLayout 布局常用属性
- android布局常用属性
- 如何自己在Android编写一个Sqlite动态操作软件
- java使用poi解析2007以上的word文档中的表格与图片
- Android Studio Lint 自动检查清除冗余资源
- Nginx1.1 Nginx配置文件详细说明
- 欢迎使用CSDN-markdown编辑器
- 使用代码构建布局及设置常用属性
- 题目:查找子字符串
- 命令行发布jar到私服
- Nginx学习-2.1 简单实现负载均衡
- spring 定时任务执行两次解决办法
- SPI总线之CPOL CPHA
- 哈希表的综合应用(创建、处理冲突、查找成功和失败的次数)
- OC中封装,拆包基本数据类型
- 初学使用Gradle创建一个Java项目总结