ImageButton в Android

Может кто-нибудь сказать мне, как изменить размер imageButton, чтобы точно соответствовать изображению. Это код, который я пробовал, но изображение помещается в позицию, которую я обнаруживаю с помощью android:scaleType но я не могу уменьшить размер ImageButton, PLS помочь мне в устранении этой проблемы … Код, который я пробовал, – это …

 <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> 

Solutions Collecting From Web of "ImageButton в Android"

К сожалению, поздно, но им все «лучше поздно, чем никогда». У меня был такой же вопрос сегодня, он нашел здесь объяснение: http://www.anddev.org/tutorial_buttons_with_niceley_stretched_background-t4369.html

 android:background="@drawable/eye" 

Работает автоматически.

 android:src="@drawable/eye" 

Был тем, что я использовал со всеми проблемами изменения размера изображения по ширине и высоте кнопки …

Вы устанавливаете изображение с помощью свойства "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> 

Вероятно, вам придется изменить размер кнопки программно. Вам нужно будет явно загрузить изображение в свой метод onCreate () и изменить размер кнопки там:

 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.

ScaleTypes не отображаются должным образом в дизайнере Eclipse Layout, поэтому проверьте в своем рабочем приложении.

Вы пытались дать layout_width и layout_height следующим образом? Поскольку вы устанавливаете с помощью wrap_content, кнопка изображения расширяется до размера и ширины исходного изображения.

 <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

Неправильно (изображение не будет соответствовать кнопке)

 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

Это также поможет вам создать вашу скиновую кнопку с четырьмя состояниями нажатой, нормальной, отключенной и сосредоточенной. Обязательно сохраняйте одинаковые размеры всех png

Вы также можете установить фон прозрачным. Таким образом, кнопка похожа на вашу иконку.

  <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" /> 

Я думаю, вы уже решили эту проблему, и, как говорили другие ответы

 android:background="@drawable/eye" 

доступен. Но я предпочитаю

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

И он тоже хорошо работает (конечно, прежний код установит изображение в качестве фона, а другой установит изображение как изображение). Но в соответствии с выбранным вами ответом, я думаю, вы имели в виду 9-патч.