有一个LinearLayout L 宽高都是WRAP_CONTENT ,L的方向是HORIZONATL(水平)
有一个Button a、b、c 宽高都是WRAP_CONTENT 从数据库中动态读取他们的信息,包括背景贴图片名字,通过名字到Drawable文件夹里获取图片
然后将图片给每个Button,每个的Button的图片高一样,长不一样我现在简单地:
L.addView(a);
L.addView(b);
L.addView(c);结果是Button变形或者第三个Button被挤出屏幕,无法正常的显示在一行
我该如何设置,代码如何控制
有一个Button a、b、c 宽高都是WRAP_CONTENT 从数据库中动态读取他们的信息,包括背景贴图片名字,通过名字到Drawable文件夹里获取图片
然后将图片给每个Button,每个的Button的图片高一样,长不一样我现在简单地:
L.addView(a);
L.addView(b);
L.addView(c);结果是Button变形或者第三个Button被挤出屏幕,无法正常的显示在一行
我该如何设置,代码如何控制
int res_id= context.getResources().getIdentifier(pic_name,
"drawable", "com.Test");//按图片名字获取图片的资源ID(R里的那个ID)
Button b = new Button(context); Drawable d = this.getResources().getDrawable(pic_id);
Bitmap bitmap = ((BitmapDrawable) d).getBitmap();
//获取图片的实际长宽
float x = (dm.widthPixels * 100) / 480;//dm用于获取当前屏幕的宽,480是我的图片基于多宽屏幕设计的,这个数值从美工人员那里获得
float h = (bitmap.getHeight() * x) / 100;
float w = (bitmap.getWidth() * x) / 100; LinearLayout.LayoutParams btp = new LinearLayout.LayoutParams(
(int) w, (int) h);
b.setLayoutParams(btp);
b.setBackgroundResource(pic_id);最终实现动态根据当前屏幕的分辨率,来控制图片的显示比例
LinearLayout r;属性设置为WRAP_CONTENT,WRAP_CONTENT
Linearlayout linearView;属性设置为WRAP_CONTENT,WRAP_CONTENT
ScrollView sv;属性设置为WRAP_CONTENT,WRAP_CONTENTRelativeLayout.LayoutParams params; ( 属性为MATCH_PARENT,MATCH_PARENT )
加载顺序
r.addView(linearView);
sv.addView(r);
params.addRule(RelativeLayout.BELOW, titleLayout.getId());//实际起作用了
params.addRule(RelativeLayout.ABOVE, AdLayout.getId())//实际起作用了
params.addRule(RelativeLayout.CENTER_HORIZONTAL)//但是这句不起作用,为什么啊root.addView(sv,params);如何让sv整体水平居中(CENTER_HORIZONTAL)