我有一个XML,其布局大致如下:
<merge>
<LinearLayout (horizontal)>
<ImageButton/>
<ImageButton/>
<ImageButton/>
<LinearLayout/>
<TextView/>
<merge/>
当我将XML扩展为自定义垂直线性布局时,一切都按预期进行。每个项目的大小都是正确的,并且textView可以正常显示。
但是ImageButtons现在是完全透明的,尽管我在模拟器中运行应用程序时指定了源,但ImageButtons中却没有图像。在XML编辑器的“设计”视图中,我的ImageButton具有其源图像并且看起来不错。这是我在XML中大致看到的每个ImageButton的样子:
<ImageButton android:id="@+id/endBtn"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_weight="1"
android:background="?android:selectableItemBackground"
android:elevation="12dp"
android:tint="@color/white"
app:srcCompat="@drawable/ic_close_black_24dp"
tools:srcCompat="@drawable/ic_close_black_24dp" />
我在自定义LinearLayout
视图类中使用以下代码扩展视图:
LayoutInflater.from(context).inflate(R.layout.game_controls_view, this, true);
我想念什么?
答案 0 :(得分:0)
我认为tint
的颜色与此处的src
可绘制对象混淆了。我建议删除tint
颜色,然后检查图像是否正在显示。
如果这样不起作用,请尝试删除app:srcCompat
并仅对tools:srcCompat
使用ImageButton
,如下所示。
<ImageButton
android:id="@+id/endBtn"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_weight="1"
android:background="?android:selectableItemBackground"
android:elevation="12dp"
android:tint="@android:color/white"
tools:srcCompat="@drawable/ic_launcher_background" />
答案 1 :(得分:0)
您正在通过app:srcCompact.s使用可绘制矢量,因此您需要将此行添加到build.gradle文件中。
defaultConfig {
...
vectorDrawables.useSupportLibrary = true // This line here
}
第二个选项是使用android:src引用矢量可绘制对象。
答案 2 :(得分:0)
Use this
<ImageButton android:id="@+id/endBtn"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_weight="1"
android:background="?android:selectableItemBackground"
android:elevation="12dp"
app:srcCompat="@drawable/ic_launcher_background"
tools:srcCompat="@drawable/ic_launcher_background"
tools:ignore="VectorDrawableCompat" />
[1]: https://i.stack.imgur.com/0w8aj.png