基本上,ImageButton要做的所有操作(InactiveButton)都在按下时切换到图像。我不知道从哪里开始,因为我是Android Studio的新手。
我尝试使用选择器类,但是我不知道它应该完成什么。当我使用其他代码(例如public void buttonOnClick(View v))时,android studio说它已被弃用?
XML布局:
<ImageButton
android:id="@+id/InactiveButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:layout_marginBottom="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/button_default" />
编辑1:我添加了以下代码,但在第52行上仍然出现了“此处不允许使用注释” @override,并且在行上无法解析符号v 53.
编辑2:第50行的最终错误图片
答案 0 :(得分:0)
您可以这样更改图像:
ImageView someImageView= (ImageView) findViewById(R.id.some_image_view);
imageView.setImageResource(R.drawable.some_image);
答案 1 :(得分:0)
在您的onCreate
中的Activity
方法中
ImageButton inactiveButton = convertView.findViewById(R.id.InactiveButton);
现在,您已经引用了ImageView
。
然后,您需要定义单击时的操作。
inactiveButton .setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// put here the code when ImageView is clicked
// to change the ImageView image
inactiveButton.setImageResource(R.drawable.otherimage);
}
});
仅此而已。
答案 2 :(得分:0)
费兰所说的是完全正确的。
您需要以正确的方式实施它。
首先在onCreate方法之前定义图像视图,以便将其视为全局变量,这样做的好处是您可以在同一活动中的任何位置使用它。
喜欢
ImageButton inactiveButton;
其次,使用onCreate方法中的FindViewById查找其视图。
喜欢
inactiveButton = convertView.findViewById(R.id.InactiveButton);
接下来,您可以使用两种方法在inactiveButton上实现onClickListener: 1.您可以使用inactiveButton.setOnClickListener(this)来为活动实现“实现View.OnClickListener”;这将提示您为活动或片段实现“ android.view.View.OnClickListener”。实现此方法,将添加onClick方法,您可以在此处编写代码以更改图片按钮中的图片
@Override
public void onClick(View v) {
// add this, this will help you to implement multiple clicklisteners and you can add different methods in each click listener
switch (v.getId())
{
case R.id.InactiveButton:
inactiveButton.setImageResource(R.drawable.otherimage);
break;
default:break;
}
}
inactiveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
inactiveButton.setImageResource(R.drawable.otherimage);
}
});
希望这会对您有所帮助。我知道我已经添加了很多信息,但是从长远来看,它会为您提供帮助。您可以检查图像以获得更高的清晰度,然后可以轻松地掩盖缺陷。
问候 阿曼普雷特(Amanpreet)