我在资源里定义了一个按钮,在程序里实例化它
Button searchButton= (Button)inflater.inflate(R.layout.button_big, null);----
<?xml version="1.0" encoding="utf-8"?>
<Button xmlns:android="http://schemas.android.com/apk/res/android"
 android:background="@drawable/button_big"
    android:layout_width="120dip"
    android:layout_height="38dip"
    android:layout_gravity="center_horizontal"
    android:layout_marginTop="5dp"
/>
----
发现这个按钮显示后,并没有显示成我设置的大小(不知道什么原因)现在想就在程序里再次设置它的大小,可是发现setWeight只能是px为单位(文档里说的),而不是120dip,我该怎么办?还有,我想问下,为什么没有setMargin()方法,而只有setPadding()方法,why? 求大侠帮助解疑。

解决方案 »

  1.   

    android:layout_width="120dip"
    应该是 android:layout_width="120dp" 吧?!
      

  2.   

    Margin和Padding都是针对Layout而言的,你的Button最后试addView到哪个Layout上的,就去设置那个Layout的对应的Margin和Padding属性,如果你讲这个Button添加到LinearLayout,那么你的按钮的width和height都是没用的。
      

  3.   

    你看下这段代码可能会对你有帮助
    public int dip2px(Context context, float dipValue) {
    final float scale = context.getResources().getDisplayMetrics().density;
    return (int) (dipValue * scale + 0.5f);
    } public int px2dip(Context context, float pxvalue) {
    final float scale = context.getResources().getDisplayMetrics().density;
    return (int) ((pxvalue - 0.5f) / scale);
    }你想要设置120dip,先把120dip转换成对应大小的px,然后设置px即可
      

  4.   

    不可能啊,我加过按钮在linearLayout里,资源文件里的layout_width和layout_height是有作用的。