自定义通知使用以编程方式生成的drawables

时间:2017-12-18 15:34:35

标签: android

我试图在android中实现自定义通知。

基本上,我有一个音乐播放器应用程序,我正在尝试为该应用程序设置自定义通知。

应用程式:最小:16安培;最大:26;

    RemoteViews contentView=new RemoteViews(getPackageName(),R.layout.custom_notification);
    Bitmap bm=BitmapFactory.decodeFile(songImage);
    Drawable drawable=new BitmapDrawable(getResources(),bm);
    contentView.setImageViewResource(R.id.notificationIcon,drawable);

这就是我所做的,对于我希望图标被其专辑封面取代的每一张图片。

在上面代码的最后一行之前,一切都很好。

setImageViewResource接受两个参数,第一个是元素id,第二个是可绘制的id。

但问题是,我正在根据必须以编程方式绘制的歌曲来生成drawable。

如何使用此方法或为相应的图像视图设置专辑封面?

自定义Notification.xml

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="64dp"
    android:padding="10dp">
    <ImageView
        android:layout_width="50dp"
        android:layout_height="match_parent"
        android:background="@drawable/playicon"
        android:id="@+id/notificationIcon"
        android:layout_marginRight="10dp"
        android:layout_marginEnd="10dp" />
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="150dp"
        android:layout_height="match_parent">
        <TextView
            android:textSize="15sp"
            android:textColor="#000"

            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textStyle="bold"
            />
        <TextView
            android:textSize="13sp"
            android:textColor="#000"
            android:id="@+id/text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            />
    </LinearLayout>
    <Button
        android:layout_width="40dp"
        android:layout_height="match_parent"
        android:id="@+id/notificationPrev"
        android:background="@drawable/back"
        />
    <Button
        android:layout_width="40dp"
        android:layout_height="match_parent"
        android:id="@+id/notificationPlay"
        android:background="@drawable/smallpause"
        />
    <Button
        android:layout_width="40dp"
        android:layout_height="match_parent"
        android:id="@+id/notificationForw"
        android:background="@drawable/forw"
        />

</LinearLayout>

1 个答案:

答案 0 :(得分:1)

您可以使用setImageViewBitmap()来加载您想要的位图,而不是使用setImageViewResource()。