在Android Studio 3.0中使类ImageButton出现错误

时间:2018-03-23 19:42:03

标签: java android

当我运行我的应用程序时,它显示当我在该行setContentView(R.layout.activity_main)上放置一个try块时,我的应用程序已停止工作,

它抛出

的例外
Error inflating class ImageButton.

我认为XML代码存在问题,帮助我找到问题。

Java代码

public class MainActivity extends AppCompatActivity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    try {
        setContentView(R.layout.activity_main);
    }
    catch(Exception e){
        Log.i("Error>>> ",e.getMessage());
    }

  }

  public void change(View view){
    ImageButton Tom= (ImageButton) findViewById(R.id.cartoon);
    Tom.animate().alpha(0.3f).setDuration(2000);
    Tom.setImageResource(R.drawable.jerry);
  }
}

XML代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.chhabib.animations.MainActivity">

<ImageButton
    android:id="@+id/cartoon"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true"
    android:contentDescription="@string/this_is_tom"
    android:onClick="change"
    app:srcCompat="@drawable/tom" />
</RelativeLayout>

enter image description here

2 个答案:

答案 0 :(得分:1)

我找到了解决问题的方法。 实际上我将图像复制到drawable(v24),但当我将图像复制到drawable文件夹时,我的问题解决了。但现在我正在寻找drawable文件夹和drawable(v24)文件夹之间的区别。

答案 1 :(得分:0)

确保您的图片来源是Android支持的类型。

并尝试同时放置android:src="@drawable/tom"

<ImageButton
    android:id="@+id/cartoon"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true"
    android:contentDescription="@string/this_is_tom"
    android:onClick="change"
    android:src="@drawable/tom"
    app:srcCompat="@drawable/tom"/>