Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当我更改背景时,ImageButton会调整大小_Java_Android_Imagebutton - Fatal编程技术网

Java 当我更改背景时,ImageButton会调整大小

Java 当我更改背景时,ImageButton会调整大小,java,android,imagebutton,Java,Android,Imagebutton,我正在android Studio中制作我的第一个android应用程序。我有一个ImageButton,我想在单击时更改它。为此,我创建了一个名为Field的新类,它扩展了ImageButton类。因此,我使用它而不是ImageButton。在类字段中,我重新定义了一个构造函数,以便在创建field对象时,它设置OnClickListener 以下是我用于此目的的Java代码:` public Field(Context context) { super(context); i

我正在android Studio中制作我的第一个android应用程序。我有一个
ImageButton
,我想在单击时更改它。为此,我创建了一个名为
Field
的新类,它扩展了
ImageButton
类。因此,我使用它而不是
ImageButton
。在类字段中,我重新定义了一个构造函数,以便在创建
field
对象时,它设置
OnClickListener

以下是我用于此目的的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);
        }
    });
}`
然后,当我在活动中创建
字段
对象时,设置了
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" />

我注意到,即使我在xml中将
pic01
更改为
open
,打开的
open
图像也比
pic01
大,两者都是
.png
。单击时如何获得相同大小的图像

更改两行

android:layout_width="wrap_content"
android:layout_height="wrap_content"

或者其他一些你不想看到的尺寸<代码>包裹内容将根据显示的可绘制内容更改视图的大小

android:layout_width="48dp"
android:layout_height="48dp"