android 用java代码设置布局、视图View的宽度/高度或自适应
2014-08-28 20:35
609 查看
在achat项目中,对话内容的长宽设置为自适应,但是如果文本内容太多,则宽度差不多布满,若自己说的和对方说的都很多内容,则满屏都是文字,则不容易分辨出是来自别人说的还是自己说的。那么需要对本身具有自适应的布局再来个宽度限制。
首先,在xml里面定义layout的layout_width/layout_height都要设置为wrap_content,然后在getView方法里面,一开始就让这个布局wrap_content(为什么xml里面设置了wrap_content,这里还要再设置一遍呢?因为布局的重用,不多说了),WidgetController.setLayoutWidth(holder.lay_content, MarginLayoutParams.WRAP_CONTENT);
然后,在填充完布局后,再来一段,让这个布局不能超过屏幕宽的50%,若超过则以这个为最大宽度:
下面是setLayoutWidth方法的代码,相当好用:
转载请注明出处: http://blog.csdn.net/rocklee
首先,在xml里面定义layout的layout_width/layout_height都要设置为wrap_content,然后在getView方法里面,一开始就让这个布局wrap_content(为什么xml里面设置了wrap_content,这里还要再设置一遍呢?因为布局的重用,不多说了),WidgetController.setLayoutWidth(holder.lay_content, MarginLayoutParams.WRAP_CONTENT);
然后,在填充完布局后,再来一段,让这个布局不能超过屏幕宽的50%,若超过则以这个为最大宽度:
int w=(int)(DensityUtil.getScreenWidth()*0.5); if (WidgetController.getWidth(holder.lay_content)>w){ WidgetController.setLayoutWidth(holder.lay_content,w); }
下面是setLayoutWidth方法的代码,相当好用:
/** * 設置View的寬度(像素),若設置爲自適應則應該傳入MarginLayoutParams.WRAP_CONTENT * @param view * @param width */ public static void setLayoutWidth(View view,int width) { /* MarginLayoutParams margin=new MarginLayoutParams(view.getLayoutParams()); margin.setMargins(margin.leftMargin,y, margin.rightMargin, y+margin.height); //RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(margin); //view.setLayoutParams(layoutParams); ViewGroup.MarginLayoutParams layoutParams =newLayParms(view, margin); //RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(margin); view.setLayoutParams(layoutParams); view.requestLayout();*/ if (view.getParent() instanceof FrameLayout){ FrameLayout.LayoutParams lp=(FrameLayout.LayoutParams) view.getLayoutParams(); lp.width=width; view.setLayoutParams(lp); //view.setX(x); view.requestLayout(); } else if (view.getParent() instanceof RelativeLayout){ RelativeLayout.LayoutParams lp=(RelativeLayout.LayoutParams)view.getLayoutParams(); lp.width=width; view.setLayoutParams(lp); //view.setX(x); view.requestLayout(); } else if (view.getParent() instanceof LinearLayout){ LinearLayout.LayoutParams lp=(LinearLayout.LayoutParams)view.getLayoutParams(); lp.width=width; view.setLayoutParams(lp); //view.setX(x); view.requestLayout(); } }
转载请注明出处: http://blog.csdn.net/rocklee
相关文章推荐
- android 用java代码设置布局、视图View的宽度/高度或自适应
- Android UI之代码动态设置ImageView的宽度和高度
- android关于代码中动态设置view的高度宽度的问题
- Android ImageView设置宽度,高度自适应
- 在Java代码中设置控件高度和宽度按比例自适应屏幕
- 在代码写布局,设置相应的位置,同时分析一下布局中View这个控件的高度,宽度(主要用于画实线虚线)
- Android 自定义imageview图片高度固定大小宽度按比例自适应
- 用EXTJS设置界面布局时有时候需要做一些较复杂的布局,同时要求布局中的各个部分能够自适应高度和宽度。
- 代码改布局的高度等Caused by: java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams
- 如何使用代码动态的获取和设置ImageView的宽度和高度?
- Android 设置ImageView宽度固定,其高度按比例缩放适应
- 如何使用代码动态的获取和设置ImageView的宽度和高度?
- android使用java代码设置textview、button等内容颜色
- android Java代码设置textview的字体资源颜色
- Android ImageView设置长度高度为wrap_content时高度根据图片比例自适应
- android ImageView 宽度设定,高度自适应
- Android ImageView设置长度高度为wrap_content时高度根据图片比例自适应
- android TextView EditTextView一些技巧使用 (视图代码布局)
- 【Android】Android Layout Binder——根据layout布局文件自动生成findViewById的java代码的神器
- Android布局文件Value中设置格式字符串并在Java代码中使用的一点说明