Я делаю свое первое Android-приложение в Android Studio. У меня есть ImageButton
, который я хочу изменить по клику. Для этого я создал новый класс под названием Field
, который расширяет класс ImageButton
. поэтому, я использую это вместо ImageButton
. И в поле класса я переопределил конструктор, чтобы добавить, что он устанавливает OnClickListener
, когда он создает объект Field
.ImageButton меняет размер, когда я меняю фон
Вот Java код, который я использовал для этого: `
public Field(Context context) {
super(context);
init();
}
public Field(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public Field(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init(){
setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
setImageResource(R.drawable.open);
}
});
}`
Чем, когда я создаю Field
объект в моей деятельности, OnClickListener
устанавливается. И это работает. Однако новое изображение под названием open
больше, чем мое предыдущее изображение под названием pic01
, но оба изображения имеют одинаковый размер 185x185
.
Вот моя активность XML:
<asd.clicker.Field
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/asd.clicker.Field1"
android:background="@drawable/pic01"
android:layout_above="@+id/asd.clicker.Field4"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginBottom="25dp" />
Я заметил, что, даже когда я просто изменить pic01
к open
в моем XML, то open
изображение больше, чем pic01
, оба .png
. Как я могу получить изображение того же размера, когда я нажимаю?