ImageButton в Android

Может кто-либо говорить мне, как изменить размер 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>
24
задан Kuya 29 July 2019 в 04:47
поделиться

2 ответа

Вероятно, вам придется изменить размер кнопки программно. Вам нужно будет явно загрузить изображение в метод 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 (поскольку ширина и высота все еще зависят от родительского представления), но это должно работать довольно хорошо почти для любой ситуации.

3
ответ дан 28 November 2019 в 22:48
поделиться

вы устанавливаете изображение с помощью свойства "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>
13
ответ дан 28 November 2019 в 22:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: