当我更改背景时 ImageButton 调整大小
ImageButton resizes when I change background
我正在 Android Studio 中制作我的第一个 android 应用程序。我有一个 ImageButton
,我想在点击时更改它。为此,我创建了一个名为 Field
的新 class,它扩展了 ImageButton
class。所以,我用它代替 ImageButton
。在 class 字段中,我重新定义了一个构造函数,以便我添加它在创建 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);
}
});
}`
然后,当我在 activity 中创建 Field
对象时,设置了 OnClickListener
。
而且,它有效。然而,名为 open
的新图像比我之前名为 pic01
的图像更大,但两个图像的大小相同 185x185
。
这是我的 activity 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"
或您不希望视图显示的其他尺寸。 wrap_content
将根据显示的可绘制对象更改视图的大小。
我正在 Android Studio 中制作我的第一个 android 应用程序。我有一个 ImageButton
,我想在点击时更改它。为此,我创建了一个名为 Field
的新 class,它扩展了 ImageButton
class。所以,我用它代替 ImageButton
。在 class 字段中,我重新定义了一个构造函数,以便我添加它在创建 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);
}
});
}`
然后,当我在 activity 中创建 Field
对象时,设置了 OnClickListener
。
而且,它有效。然而,名为 open
的新图像比我之前名为 pic01
的图像更大,但两个图像的大小相同 185x185
。
这是我的 activity 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"
或您不希望视图显示的其他尺寸。 wrap_content
将根据显示的可绘制对象更改视图的大小。