2014-10-03 5 views
1

Я делаю TicTacToe в Android. Когда я нажимаю кнопку ImageButton, изображение, отображающее приложение, увеличивает компонент, не обращая внимания на размер кнопки.Fit image on ImageButton

TicTacToe

Я использовал атрибут android:scaleType="fitCenter" (почти fitXY, centerInside, fitCenter, fitStart), чтобы попытаться подогнать изображение внутри компонента, но это не сработало.

Это одна части моего кода XML моего ImageButton:

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" > 

     <ImageButton 
      android:id="@+id/btn1" 
      android:layout_width="wrap_content" 
      android:layout_height="100dp" 
      android:layout_weight="0.246" 
      android:onClick="onDonGato" 
      android:text="" /> 

     <ImageButton 
      android:id="@+id/btn2" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:layout_weight="0.246" 
      android:onClick="onDonGato" 
      android:scaleType="fitCenter" 
      android:text="" /> 

     <ImageButton 
      android:id="@+id/btn3" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:layout_weight="0.246" 
      android:onClick="onDonGato" 
      android:scaleType="fitCenter" 
      android:text="" /> 

</LinearLayout> 

Я не считаю Android устройства, где я работаю приложение (потому что я побежал в игру на Android Virtual Device, и это происходит та же проблема).

Буду признателен за любую помощь в решении моей проблемы. Благодарю.

ответ

1

Если ориентация линейного макета горизонтальная, то при установке веса на его дочерний элемент вы должны установить его ширину = «0dp» и для вертикальной ориентации height = 0dp. и используйте fitXY.

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
android:orientation="horizontal"> 

     <ImageButton 
      android:id="@+id/btn1" 
      android:layout_width="0dp" 
      android:layout_height="100dp" 
      android:layout_weight="0.246" 
      android:onClick="onDonGato" 
      android:scaleType="fitXY" 
      android:text="" /> 

     <ImageButton 
      android:id="@+id/btn2" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="0.246" 
      android:onClick="onDonGato" 
      android:scaleType="fitXY" 
      android:text="" /> 

     <ImageButton 
      android:id="@+id/btn3" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="0.246" 
      android:onClick="onDonGato" 
      android:scaleType="fitXY" 
      android:text="" /> 

</LinearLayout> 

Надеюсь, это поможет вам.

+0

Спасибо, чувак. Было очень полезно. – ArCiGo

+0

Рад, что я тебе помог! и спасибо за принятие моего ответа. – Programmer

0

Насколько я знаю, вы не можете поместить изображение по центру изображения ... параметры, которые у вас есть, находятся в центре текста, внизу, слева и справа от текста ...

Я рекомендую вам переключиться на ImageView вместо кнопки «Изображение» ... и создать стиль, чтобы он имел тот же эффект, что и кнопка.

Другой вариант должен был бы сделать это через GridView с и ImageView внутри, но это больше лишняя работа ...

0

Вы можете установить фоновое изображение и установить ширину и высоту ,