图像作为按钮背景 - 崩溃和工作

时间:2017-05-29 14:39:09

标签: android image button crash runtime

我经历了十几个这样的例子,十几个与此相关的错误,并且出于某种原因我的图像不起作用。

所有图片均小于800x800像素,小于200kb,全部采用.png格式。

我有几个片段,每个片段中有几个图像。 我添加了带有背景图像的按钮,如下所示。

<LinearLayout 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"
    android:orientation="vertical">

    <TextView
        android:id="@+id/textView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Please select" />

    <Button
        android:id="@+id/broad_btn"
        android:layout_width="@android:dimen/notification_large_icon_width"
        android:layout_height="@android:dimen/notification_large_icon_height"
        android:background="@drawable/broad"
        android:tag="broad"
        android:text="Broad" />
    </Linearlayout>

现在,我所拥有的第二个片段上的图像与上面的图像没有区别。 但是,当我尝试在后台使用它时,我的应用程序崩溃了。

但是,如果我在第一页上使用“问题”图像 - 那么它可以正常工作。 只有当我将这个图像移动到它失败的第二个片段时。

第二个代码是

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/textView4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="TextView" />

    <Button
        android:id="@+id/late_btn"
        android:layout_width="@android:dimen/notification_large_icon_height"
        android:layout_height="@android:dimen/notification_large_icon_height"
        android:background="@drawable/late"
        android:text="Long" />
</LinearLayout>

2 个答案:

答案 0 :(得分:0)

对不起伙计们,

这是一个简单的RAM问题......没有足够重视资源分配。

谢谢, Ú

答案 1 :(得分:0)

对于大图像分辨率,您很可能会出现OutOfMemory错误。

尝试使用GlidePicasso库来处理large照片efficiently以及磁盘caching

<强>滑翔:

GlideApp.with(context).load(R.drawable.broad).into(imageView);

<强>毕加索:

icasso.with(context).load(R.drawable.late).into(imageView);

希望这会有所帮助〜