Android Imagebutton被剪切

时间:2018-09-25 20:08:06

标签: android android-layout android-linearlayout android-imagebutton

我的Activity和其中的ImageButton出现问题。看起来像是剪裁:

enter image description here

这是相应活动的XML:

<?xml version="1.0" encoding="utf-8"?>
<!-- A RecyclerView with some commonly used attributes -->
<LinearLayout xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:id="@+id/todo_linear_layout"
android:layout_height="match_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:orientation="horizontal">

    <ImageButton
        android:id="@+id/imageButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:adjustViewBounds="true"
        app:srcCompat="@android:drawable/ic_input_add" />

    <EditText
        android:id="@+id/edittodo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20px"
        android:layout_weight="5"
        android:textColor="@android:color/black" />
</LinearLayout>

<android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/todo_recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical" >

</android.support.v7.widget.RecyclerView>
</LinearLayout>

此外,Android Studio中的布局设计器可以正确显示布局:

enter image description here

问题出在哪里?我已经尝试过更改边距或填充值,但是Button仍在我的android设备上正在运行的应用中被裁剪。

2 个答案:

答案 0 :(得分:1)

我相信正在发生的事情是您运行应用程序的设备没有@android:drawable/ic_input_add可绘制对象。

我尝试运行您发布的代码,一切都对我有用。但是,如果我从app:srcCompat标记中删除了<ImageButton>属性,那么我得到的行为与您在第一个屏幕截图中发布的行为相同。

通常,您不能依赖100%拥有@android:资源的设备。一些制造商会删除资源,而其他制造商则会用废话替换这些值(例如,我看到@android:color/white变成灰色)。

我建议创建自己的drawable(甚至可以只是从Android手动复制一个并将其添加到您的项目中),然后引用它。

app:srcCompat="@drawable/your_own_add"

答案 1 :(得分:0)

将app:srcCompat更改为:     [1, 2, 3, 4, 5] [0, 1, 1, 2, 2] 做到了!因此,问题在于设备没有找到该图标,而只显示灰色。