ImageButton bt = new ImageButton(mToolBar.getContext());
     bt.setImageResource(resId);
     bt.setBackgroundColor(Color.BLACK);
     bt.setScaleType(ImageButton.ScaleType.FIT_CENTER);
     bt.setOnClickListener(listener);
mToolBar.addView(bt,new LinearLayout.LayoutParams(72,72));图片都是是 128*128的,在XML文件里添加的ImageButton是可以的
    <LinearLayout
        android:id="@+id/linearLayoutToolBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical" >
        
        <ImageButton
            android:id="@+id/drawline"
            android:layout_width="72dp"
            android:layout_height="72dp"
            android:scaleType="fitCenter"
            android:src="@drawable/ic_line"
            android:background="#ff000000"  />    </LinearLayout>如图,小的那个是代码里添加进去的,大的哪些是XML文件里写的,不知道这是咋回事,图片都是是 128*128的。

解决方案 »

  1.   

    mToolBar.addView(bt,new LinearLayout.LayoutParams(72,72));
    是不是你这行限定死了?
    把上面括号中的值,还有android:layout_width="72dp"中的值,换成wrap_content试试呢
      

  2.   

    那个XML里面的是没有问题的
    就是那个代码里动态创建的不知道怎么显示的时候小那么多,我的想法是动态创建的应该和XML里创建的显示的大小一样啊。
      

  3.   

    光看是解决不了问题的。试着改一些地方,观察呢。1.你把mToolBar.addView(bt,new LinearLayout.LayoutParams(72,72));
    里面的数字改大一点,比如(200,300)。2.scaleType这个属性去掉试试。3.其他地方有可疑的参数都修改观察一下。不行的话我也不清楚了,那只有召唤大神帮忙了- -
      

  4.   

    楼主就想要72X72的吗?证明你写的代码里的正确,但是在xml里面的显示不正确。
      

  5.   

    都试过了,各种效果,都合XML文件里显示的不一样。
    宽高改大一点就超出了button的范围显示了,感觉不是居中显示的。
    宽高改小些显示的小一些,还是居中。
    不用scaleType显示的比XML里的那个更大一些。
      

  6.   

    XML里为什么不正确呢?就那几行代码。
      

  7.   

    一般这种情况我是用selector....把 ImageButton 换成 TextView ,再加两张图片,一张是默认的样式,一张是按下时的样式,在selector中设置好,再设置TextView的背景为对应的selector,就可以达到按钮的效果....