Android中的ImageButton

任何人都可以告诉我如何调整imageButton的大小以适应图像。这是我试过的代码,但图像放置在我使用android:scaleType定位的位置,但我无法缩小尺寸imageButton,请帮我解决这个问题…我试过的代码是…

 <ImageButton> android:id="@+id/Button01" android:scaleType="fitXY" // i have tried all the values for this attr android:layout_width="wrap_content" android:layout_height="wrap_content" android:cropToPadding="false" android:paddingLeft="10dp" android:src="@drawable/eye"> // this is the image(eye) </ImageButton> 

有点晚了,但即时通讯所有的“好,迟到,永远不会”今天我有同样的问题,发现它在这里解释: http : //www.anddev.org/tutorial_buttons_with_niceley_stretched_background-t4369.html

 android:background="@drawable/eye" 

自动工作。

 android:src="@drawable/eye" 

是我用所有的问题调整图像的宽度和高度的button…

你正在设置图像的属性“src”

 android:src="@drawable/eye"> 

使用“ background ”属性,而不是“ src ”属性:

 android:background="@drawable/eye" 

喜欢:

 <ImageButton android:id="@+id/Button01" android:scaleType="fitXY" android:layout_width="wrap_content" android:layout_height="wrap_content" android:cropToPadding="false" android:paddingLeft="10dp" android:background="@drawable/eye"> // this is the image(eye) </ImageButton> 

您可能将不得不以编程方式调整button。 你需要在你的onCreate()方法中显式加载图像,并调整button的大小:

 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ImageButton myButton = (ImageButton) findViewById(R.id.button); Bitmap image = BitmapFactory.decodeResource(R.drawable.eye); myButton.setBitmap(image); myButton.setMinimumWidth(image.getWidth()); myButton.setMinimumHeight(image.getHeight()); ... } 

根据setMinimumX的规范(因为宽度和高度仍然依赖父视图),不能保证能够正常工作,但是对于几乎所有的情况,它都可以工作得很好。

尝试使用ScaleType centerInside。

ScaleType在Eclipse布局devise器中不能正确呈现,因此请在运行的应用程序中进行testing。

你有没有尝试给layout_width和layout_height如下所示? 由于您正在使用wrap_content进行设置,因此图像button会展开为源图像高度和宽度的大小。

 <blink> <ImageButton> android:id="@+id/Button01" android:scaleType="fitXY" android:layout_width="80dip" android:layout_height="80dip" android:cropToPadding="false" android:paddingLeft="10dp" android:src="@drawable/eye"> </ImageButton> </blink> 

您不必使用src属性来使用它

错误的方式(图像不适合button)

 android:src="@drawable/myimage" 

正确的方法是使用背景atttribute

 <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:background="@drawable/skin" /> 

皮肤是一个XML

skin.xml

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- <item android:drawable="@drawable/button_disabled" android:state_enabled="false"/> --> <item android:drawable="@drawable/button_pressed" android:state_pressed="true"/> <!-- <item android:drawable="@drawable/button_focused" android:state_focused="true"/> --> <item android:drawable="@drawable/button_normal"/> </selector> 

使用button_pressed.png和button_normal.png

这也将帮助你创build你的皮肤button有4种状态,按下,正常,禁用和聚焦。 确保保持所有PNG相同的大小

你也可以设置背景是透明的。 所以button看起来像适合你的图标。

  <ImageButton android:id="@+id/Button01" android:scaleType="fitcenter" android:layout_width="wrap_content" android:layout_height="wrap_content" android:cropToPadding="false" android:paddingLeft="10dp" android:background="@android:color/transparent" android:src="@drawable/eye" /> 

我想你已经解决了这个问题,并build议其他答案

 android:background="@drawable/eye" 

可用。 但是我更喜欢

 android:src="@drawable/eye" android:background="00000000" // transparent 

(当然,以前的代码会将图像设置为背景,而另一个会将图像设置为图像)。但根据您select的答案,我猜你的意思是9-patch。