0
私はアンドロイドでカスタム通知を実装しようとしていました。カスタム通知でプログラムで生成されたドロアブルを使用する
基本的に、私は音楽プレーヤーアプリケーションを持っており、私はそのアプリケーションのカスタム通知を設定しようとしています。
アプリ:最小: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と2番目の引数を取ります.2番目の引数はドロブルIDです。
しかし、問題は、私はプログラムによって描かれなければならない曲に応じてドロワブルを生成していることです。
この方法を使用するか、対応する画像ビューにアルバムアートを設定するにはどうすればよいですか?代わりにsetImageViewResourceを使用しての
カスタム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>