Android 通知自定义布局 XML imageview 未显示
Android notification custom layout XML imageview not showing
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="96dp"
android:gravity="center"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_vertical"
android:orientation="vertical"
android:paddingStart="24dp"
android:paddingBottom="8dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:id="@+id/pushIcon"
android:layout_width="16dp"
android:layout_height="16dp"
app:srcCompat="@drawable/push_icon" />
<TextView
android:id="@+id/textView23"
style="@style/TextAppearance.Compat.Notification.Info.Media"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:text="YOLOL"
android:textColor="@color/browser_actions_title_color" />
</LinearLayout>
<TextView
android:id="@+id/text_view_collapsed_1"
style="@style/TextAppearance.Compat.Notification.Title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:text="New Message!"
android:textColor="@color/colorPrimary" />
<TextView
android:id="@+id/text_view_collapsed_2"
style="@style/TextAppearance.Compat.Notification.Info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Expand to show!" />
</LinearLayout>
<ImageView
android:id="@+id/notifPreviewImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
app:srcCompat="@drawable/bb" />
</LinearLayout>
pushIcon
ImageView 占据了位置但不可见,知道为什么吗?
一个总是有助于调试过程的快速提示 - 为有问题的视图添加背景颜色(也有助于设置特定的宽度和高度以及用于测试) - 它将使您能够查看视图是否是否正在渲染。如果您看到背景颜色,则视图已正确呈现,但图像未正确加载。在不知道这一点的情况下,它可能是这些问题的任意组合。
除此之外,如果您在运行时动态更改图标,我会在那里查看您的代码。如果这是静态图像,那么我会检查您的资源文件是否为 Vector drawable,因为只有在使用 app:srcCompat="@drawable/push_icon"
时才允许这样做
如果您的文件是非矢量可绘制对象,则使用 android:src="@drawable/push_icon"
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="96dp"
android:gravity="center"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_vertical"
android:orientation="vertical"
android:paddingStart="24dp"
android:paddingBottom="8dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:id="@+id/pushIcon"
android:layout_width="16dp"
android:layout_height="16dp"
app:srcCompat="@drawable/push_icon" />
<TextView
android:id="@+id/textView23"
style="@style/TextAppearance.Compat.Notification.Info.Media"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:text="YOLOL"
android:textColor="@color/browser_actions_title_color" />
</LinearLayout>
<TextView
android:id="@+id/text_view_collapsed_1"
style="@style/TextAppearance.Compat.Notification.Title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:text="New Message!"
android:textColor="@color/colorPrimary" />
<TextView
android:id="@+id/text_view_collapsed_2"
style="@style/TextAppearance.Compat.Notification.Info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Expand to show!" />
</LinearLayout>
<ImageView
android:id="@+id/notifPreviewImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
app:srcCompat="@drawable/bb" />
</LinearLayout>
pushIcon
ImageView 占据了位置但不可见,知道为什么吗?
一个总是有助于调试过程的快速提示 - 为有问题的视图添加背景颜色(也有助于设置特定的宽度和高度以及用于测试) - 它将使您能够查看视图是否是否正在渲染。如果您看到背景颜色,则视图已正确呈现,但图像未正确加载。在不知道这一点的情况下,它可能是这些问题的任意组合。
除此之外,如果您在运行时动态更改图标,我会在那里查看您的代码。如果这是静态图像,那么我会检查您的资源文件是否为 Vector drawable,因为只有在使用 app:srcCompat="@drawable/push_icon"
如果您的文件是非矢量可绘制对象,则使用 android:src="@drawable/push_icon"